🛠️ 開発・MCP コミュニティ
typescript-strict
Strict TypeScript rules. Use when writing ANY TypeScript.
⚡ おすすめ: コマンド1行でインストール(60秒)
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o typescript-strict.zip https://jpskill.com/download/17476.zip && unzip -o typescript-strict.zip && rm typescript-strict.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17476.zip -OutFile "$d\typescript-strict.zip"; Expand-Archive "$d\typescript-strict.zip" -DestinationPath $d -Force; ri "$d\typescript-strict.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
typescript-strict.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
typescript-strictフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
厳格な TypeScript 標準
規則
1. any を使用しない
// 絶対にしない
function process(data: any) {}
// 正しい
function process(data: unknown) {
if (isValidData(data)) { /* use data */ }
}
2. 明示的な戻り値
// 絶対にしない
function getUser(id: string) { return db.find(id); }
// 正しい
function getUser(id: string): Promise<User | null> { return db.find(id); }
3. 型付きのエラー
// 絶対にしない
catch (e) { console.log(e.message); }
// 正しい
catch (error: unknown) {
if (error instanceof AppError) { logger.error(error.message); }
else if (error instanceof Error) { logger.error(error.message); }
else { logger.error('Unknown error', { error }); }
}
4. 説明のないアサーションをしない
// 絶対にしない
const user = users.find(u => u.id === id)!;
// 正しい
const user = users.find(u => u.id === id);
if (!user) throw new NotFoundError(`User ${id} not found`);
5. 明らかな場合は型推論を優先する
// 不要 - 型は推論される
const count: number = 5;
// 良い - 型は推論される
const count = 5;
// 良い - 関数シグネチャには明示的に型を指定する
function add(a: number, b: number): number {
return a + b;
}
6. 判別共用体を使用する
// 正しい
type Result<T> =
| { success: true; data: T }
| { success: false; error: string };
function handle(result: Result<User>) {
if (result.success) {
// TypeScript は result.data が存在することを知っている
console.log(result.data.name);
} else {
// TypeScript は result.error が存在することを知っている
console.log(result.error);
}
}
クイックリファレンス
| Pattern | Status |
|---|---|
any |
NEVER |
| 暗黙的な戻り値 | NEVER |
コメントなしの ! |
NEVER |
// @ts-ignore |
NEVER |
as キャスト |
MINIMIZE |
unknown + ガード |
PREFERRED |
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Strict TypeScript Standards
Rules
1. NO any
// NEVER
function process(data: any) {}
// CORRECT
function process(data: unknown) {
if (isValidData(data)) { /* use data */ }
}
2. Explicit Returns
// NEVER
function getUser(id: string) { return db.find(id); }
// CORRECT
function getUser(id: string): Promise<User | null> { return db.find(id); }
3. Typed Errors
// NEVER
catch (e) { console.log(e.message); }
// CORRECT
catch (error: unknown) {
if (error instanceof AppError) { logger.error(error.message); }
else if (error instanceof Error) { logger.error(error.message); }
else { logger.error('Unknown error', { error }); }
}
4. No Unexplained Assertions
// NEVER
const user = users.find(u => u.id === id)!;
// CORRECT
const user = users.find(u => u.id === id);
if (!user) throw new NotFoundError(`User ${id} not found`);
5. Prefer Type Inference Where Obvious
// Unnecessary - type is inferred
const count: number = 5;
// Good - type is inferred
const count = 5;
// Good - explicit for function signatures
function add(a: number, b: number): number {
return a + b;
}
6. Use Discriminated Unions
// CORRECT
type Result<T> =
| { success: true; data: T }
| { success: false; error: string };
function handle(result: Result<User>) {
if (result.success) {
// TypeScript knows result.data exists
console.log(result.data.name);
} else {
// TypeScript knows result.error exists
console.log(result.error);
}
}
Quick Reference
| Pattern | Status |
|---|---|
any |
NEVER |
| Implicit return | NEVER |
! without comment |
NEVER |
// @ts-ignore |
NEVER |
as casting |
MINIMIZE |
unknown + guards |
PREFERRED |