mcpField
T
typescript-best-practices

typescript-best-practices

github.com/poteto開発161113 回インストール22 週間前に更新
リポジトリ

typescript-best-practices について

コーディングエージェント向けの、TypeScript の型システム規律を扱うスキルです。境界での検証、正確なモデリング、網羅性チェックを重視し、安全でない型操作を抑えます。

主な機能

  1. 01判別可能なユニオンで変種を表現
  2. 02ブランド型でプリミティブを区別
  3. 03any より unknown を優先
  4. 04アサーション前にデータを検証
  5. 05分岐の網羅性を確認
  6. 06スキーマから型を導出

活用シーン

  1. 01外部入力の検証設計
  2. 02無効な状態を避けた変種のモデリング
  3. 03型ガードとアサーションの確認
  4. 04オブジェクト形式の関数引数の選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/poteto/plugins --skill typescript-best-practices

インストール後、Claude Code で/typescript-best-practicesを入力して読み込まれたか確認します。

同梱ファイルreferences/patterns.md

詳細

TypeScript のベストプラクティス

まず type-system-discipline 原則のスキルを適用してください。このスキルでは、それを TypeScript の構文に落とし込みます。

ルール概要
判別可能なユニオンkind リテラルの判別子でバリアントをモデル化し、表現できない状態を作ります。オプションフィールドの寄せ集めは避けてください。
ブランド型プリミティブ型に & { readonly __brand: "X" } を付け、取り違えを防ぎます。生成時に一度だけ検証します。
any より unknown外部データは unknown にします。any は適用される場所すべてで型チェックを無効にします。
as キャストを使わないすべての as は、いつでもランタイムクラッシュを引き起こしかねません。検証後にのみキャストしてください。
型の絞り込みの優先順位判別子による switch > in 演算子 > typeof/instanceof > ユーザー定義の型ガード > as。
型ガード主張する内容を検証する必要があります。嘘をつく型ガードは、問題が安全だと示す名前の裏に隠れるため、as よりも厄介です。isX または hasX という名前を付けてください。
網羅性default 節に const _exhaustive: never = x; をインラインで記述し、新しいバリアントが追加されたときにコンパイラーがエラーを出すようにします。
as より satisfiesリテラル型を拡大せずに値を検証します。
境界での検証データが入ってくる境界で検証し、内部では型を信頼します。boundary-discipline 原則のスキルを参照してください。
スキーマ由来の型新しいインターフェースを宣言する前に、Pick/Omit/Parameters/ReturnType/Awaited/typeof を検討してください。
オブジェクト引数位置引数ではなくオブジェクトを渡し、引数の順序がひと目で分かるようにします。ホットパス(フレームごとのレンダリング、トークナイザー、パーサー)では使わないでください。

例:references/patterns.md。

コメント