jpskill.com
💬 コミュニケーション コミュニティ

typescript-dev

TypeScriptで開発を行う際に、推奨される方法やコード品質を向上させるツール、ドキュメントのテンプレートなどを活用して、より効率的で質の高い開発を支援するSkill。

📜 元の英語説明(参考)

TypeScript development best practices, code quality tools, and documentation templates. Activated when working with .ts, .tsx files or TypeScript projects.

🇯🇵 日本人クリエイター向け解説

一言でいうと

TypeScriptで開発を行う際に、推奨される方法やコード品質を向上させるツール、ドキュメントのテンプレートなどを活用して、より効率的で質の高い開発を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o typescript-dev.zip https://jpskill.com/download/17716.zip && unzip -o typescript-dev.zip && rm typescript-dev.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17716.zip -OutFile "$d\typescript-dev.zip"; Expand-Archive "$d\typescript-dev.zip" -DestinationPath $d -Force; ri "$d\typescript-dev.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して typescript-dev.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → typescript-dev フォルダができる
  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開発のエキスパート

このスキルは、TypeScriptプロジェクトの開発をサポートします。

🎯 コアなルール

パッケージ管理

  • 必須: パッケージマネージャーとして pnpm を使用してください
  • npmyarn は使用しないでください

型安全性

  • tsconfig.json: strict: true が必須です
  • Null Handling: オプショナルチェイニング ?. と Null合体演算子 ?? を活用してください
  • Imports: ES modules を使用し、require() は避けてください
  • NO ANY: 本番コードで any 型を使用しないでください

ベストプラクティス

  • Type Inference: 明らかな場合は TypeScript に型推論させましょう
  • Generics: 再利用可能なコンポーネントに使用しましょう
  • Union Types: 文字列リテラルには enum よりも union types を優先しましょう
  • Utility Types: ビルトイン型 (Partial, Pick, Omit) を活用しましょう

ドキュメンテーション

  • 必須: ドキュメンテーションコメントには TSDoc 形式を使用してください
  • Public APIs のみ: エクスポートされた関数、クラス、インターフェースをドキュメント化してください
  • Self-documenting code: 過剰なコメントよりも明確な命名を優先しましょう
  • 必要な場合にドキュメント化: コードの意図がシグネチャから明らかでない場合にのみ TSDoc を追加しましょう

🛠️ コード品質ツール

開発ワークフロー

# コードをフォーマット
pnpm run format

# リンターを実行
pnpm run lint

# 型チェック
pnpm tsc --noEmit

# カバレッジ付きでテストを実行
pnpm test -- --coverage

🎯 品質チェックリスト

コードレビュー中にこれらを確認してください:

  • [ ] Public API に TSDoc コメントがある (意図がシグネチャから明らかでない場合)
  • [ ] any 型の使用がない
  • [ ] 適切なエラー処理
  • [ ] テストカバレッジが 80% 以上
  • [ ] 型推論が適切に活用されている
  • [ ] Utility Types が活用されている
  • [ ] オプショナルチェイニング (?.) と Null合体演算子 (??) が使用されている
  • [ ] ES modules が使用されている ( require() を避ける)

🚀 一般的なパターン

エラー処理

// 良い例: 明確なエラー型
class ValidationError extends Error {
  constructor(message: string, public field: string) {
    super(message);
    this.name = 'ValidationError';
  }
}

// 良い例: Result 型パターン
type Result<T, E = Error> =
  | { success: true; data: T }
  | { success: false; error: E };

Async/Await

// 良い例: エラー処理付き
async function fetchUserData(id: string): Promise<Result<UserData>> {
  try {
    const response = await fetch(`/api/users/${id}`);
    const data = await response.json();
    return { success: true, data };
  } catch (error) {
    return { success: false, error: error as Error };
  }
}

Type Guards

// 良い例: カスタム型ガード
function isUserProfile(value: unknown): value is UserProfile {
  return (
    typeof value === 'object' &&
    value !== null &&
    'id' in value &&
    'username' in value
  );
}

💡 パフォーマンスのヒント

  1. 不要な再レンダリングを避ける (React)

    • コストのかかるコンポーネントには React.memo を使用してください
    • useMemo / useCallback を適切に使用してください
  2. Lazy Loading

    • コード分割のための動的インポート
    • コンポーネントのための React.lazy()
  3. Type-only imports

    import type { UserProfile } from './types';

🔍 避けるべき一般的なアンチパターン

ダメな例:

// any 型の使用
function process(data: any) { }

// 暗黙的な any
function getValue(obj, key) { }

// 過剰な型アサーション
const user = data as User;

良い例:

// 適切な型定義
function process(data: UserData) { }

// 明示的な型
function getValue<T>(obj: T, key: keyof T) { }

// 型ガードの使用
if (isUser(data)) {
  // ここで data は User
}
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

TypeScript Development Expert

This skill supports TypeScript project development.

🎯 Core Rules

Package Management

  • Required: Use pnpm as package manager
  • Do not use npm or yarn

Type Safety

  • tsconfig.json: strict: true required
  • Null Handling: Leverage optional chaining ?. and nullish coalescing ??
  • Imports: Use ES modules, avoid require()
  • NO ANY: Do not use any type in production code

Best Practices

  • Type Inference: Let TypeScript infer when obvious
  • Generics: Use for reusable components
  • Union Types: Prefer union types over enums for string literals
  • Utility Types: Leverage built-in types (Partial, Pick, Omit)

Documentation

  • Required: Use TSDoc format for documentation comments
  • Public APIs only: Document exported functions, classes, and interfaces
  • Self-documenting code: Prefer clear naming over excessive comments
  • Document when necessary: Add TSDoc only when the code intent isn't obvious from the signature

🛠️ Code Quality Tools

Development Workflow

# Format code
pnpm run format

# Run linter
pnpm run lint

# Type check
pnpm tsc --noEmit

# Run tests with coverage
pnpm test -- --coverage

🎯 Quality Checklist

Check these during code review:

  • [ ] Public APIs have TSDoc comments (when intent isn't clear from signature)
  • [ ] No any type usage
  • [ ] Proper error handling
  • [ ] Test coverage above 80%
  • [ ] Type inference properly leveraged
  • [ ] Utility Types utilized
  • [ ] Optional chaining (?.) and Nullish coalescing (??) used
  • [ ] ES modules used (avoid require())

🚀 Common Patterns

Error Handling

// Good: Clear error types
class ValidationError extends Error {
  constructor(message: string, public field: string) {
    super(message);
    this.name = 'ValidationError';
  }
}

// Good: Result type pattern
type Result<T, E = Error> =
  | { success: true; data: T }
  | { success: false; error: E };

Async/Await

// Good: With error handling
async function fetchUserData(id: string): Promise<Result<UserData>> {
  try {
    const response = await fetch(`/api/users/${id}`);
    const data = await response.json();
    return { success: true, data };
  } catch (error) {
    return { success: false, error: error as Error };
  }
}

Type Guards

// Good: Custom type guard
function isUserProfile(value: unknown): value is UserProfile {
  return (
    typeof value === 'object' &&
    value !== null &&
    'id' in value &&
    'username' in value
  );
}

💡 Performance Tips

  1. Avoid unnecessary re-renders (React)

    • Use React.memo for expensive components
    • Use useMemo / useCallback appropriately
  2. Lazy Loading

    • Dynamic imports for code splitting
    • React.lazy() for components
  3. Type-only imports

    import type { UserProfile } from './types';

🔍 Common Anti-patterns to Avoid

Don't:

// Using any type
function process(data: any) { }

// Implicit any
function getValue(obj, key) { }

// Excessive type assertions
const user = data as User;

Do:

// Proper type definitions
function process(data: UserData) { }

// Explicit types
function getValue<T>(obj: T, key: keyof T) { }

// Use type guards
if (isUser(data)) {
  // data is User here
}