jpskill.com
🛠️ 開発・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. 1. 下の青いボタンを押して typescript-strict.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → typescript-strict フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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