TypeScript コーディング
ワークフロー
-
状況把握。 コードを書く前に、プロジェクトの信頼できる情報源を読む:
package.json(type、engines、packageManager、exports、scripts、インストールされているメジャーバージョン)、ロックファイル、すべてのtsconfig*.jsonとそのextendsチェーン、ルートのワークスペース、フレームワーク、リンター、フォーマッターの設定 (pnpm-workspace.yaml、turbo.json、next.config.ts、biome.json、.oxlintrc.json)、および正規のチェックコマンドを確認するためのCI。tsc --showConfigを実行してextendsチェーンを解決する。これはデフォルト値のままのオプションは省略するため、それらはreferences/modules.mdから読むこと (TypeScript 6 と 7 でデフォルトが変更された)。変更しようとしているモジュールとその隣接モジュールを読み、それらのヘルパー、エラー型、スキーマ、パターンを再利用すること。 完了条件: パッケージマネージャー、TypeScriptのメジャーバージョン、moduleとmoduleResolution、strictを超える厳格性フラグ (noUncheckedIndexedAccess、exactOptionalPropertyTypes、erasableSyntaxOnly)、リンターとフォーマッターのツールチェーン、およびプロジェクトのチェックコマンドを挙げられること。 -
型をモデル化する。 制御フローよりも先にデータを設計し、型 に従うこと。プロセス外部からの入力:
references/zod.mdを読むこと。パッケージの公開APIを変更する場合:references/api.mdを読むこと。 完了条件: 変更が依存するすべての不変条件が型にエンコードされ、信頼境界を越えるすべての値が使用前にスキーマによってパースされていること。 -
小さなループで実装する。 小さなステップで作業し、各ステップの後に
tsc --noEmit(tsc -b(プロジェクト参照がある場合)) を実行する。診断メッセージ全体を読むこと。そのコード (TS2742) がreferences/modules.mdとreferences/types.mdのテーブルを検索するキーとなる。依存関係のAPIについては、インストールされているバージョンのnode_modules/<pkg>/以下にある.d.tsを読むこと。バグ修正: まず回帰テストを書き、それが赤くなるのを確認すること。 完了条件: 変更が新しい診断なしで型チェックに合格し、回帰テストが修正前に赤、修正後に緑になったこと。 -
検証する。 ステップ1のプロジェクトのコマンドを、そのパッケージマネージャー (
pnpm exec、npx、bunx) 経由で実行する。それ以外の場合、プロジェクトが使用するツールチェーンに対して:tsc --noEmit # tsconfig.json が参照のみをリストしている場合は tsc -b biome ci # Biome oxfmt --check && oxlint --type-aware --deny-warnings # oxlint + oxfmt vitest run --typecheck # またはプロジェクトのテストランナー- `