指定されたTypeScriptファイルの型エラー修正・非推奨APIの置換・未使用importの削除・JSDocの追加を行い、コードを整理する。
TypeScript ファイルのパスを受け取り、型エラー修正・非推奨 API の置換・未使用 import 削除・JSDoc 追加の 4 ステップでコードを整理する。
$ARGUMENTS のファイルを読み込み、内容を把握するnpx tsc --noEmit --skipLibCheck --pretty 2>&1 | grep -E "<対象ファイル名>" でプロジェクト全体をビルドし、対象ファイルのエラーのみ抽出する
npx tsc --noEmit <ファイルパス>)はプロジェクトの tsconfig が無視される場合があるため使わない--skipLibCheck で node_modules 内のエラーを除外するObject is possibly 'undefined'(TS2532)→ オプショナルチェーン(?.)+ Nullish Coalescing(??)で対応するrole === 'assistant'、type === 'function')import type と import の使い分け誤り → 適切な import 形式に修正@deprecated 警告が出ているメソッド・プロパティを検出する.d.ts)を Grep で調べ、@deprecated コメントと推奨される代替 API を特定するgetGraph() → await getGraphAsync())の場合、呼び出し元が async 関数内であることを確認するfunction)を検出する/**
* <関数の役割を1文で説明>
* @param <引数名> - <引数の説明>
* @returns <戻り値の説明>
*/
@param は関数に引数がある場合のみ記述する@returns は戻り値がある場合のみ記述する(void / Promise<void> の場合は省略可)// コメントがある場合、その内容を参考にして JSDoc を作成し、冗長な // コメントは削除するnpx tsc --noEmit --skipLibCheck --pretty 2>&1 | grep -E "<対象ファイル名>" で対象ファイルの型エラーがないことを最終確認するany 型は使わない。代わりにライブラリが提供する型(例: StructuredToolInterface)や unknown + 型ガードを使うas X)は使わない。代わりに判別プロパティによる型の絞り込み(discriminated union narrowing)を使う?.)や Nullish Coalescing(??)を使うundefined の可能性がある値に対して throw によるガード節は使わない。?. と ?? で対応する// NG: any 型
type Foo = { invoke(input: any): Promise<any> };
// OK: ライブラリ型 or unknown
import type { StructuredToolInterface } from '@langchain/core/tools';
type Foo = { invoke(input: Record<string, unknown>): Promise<unknown> };
// NG: 型アサーション
(lastMessage as any).tool_calls
openaiTools as any
// OK: 判別プロパティで型を絞り込む
if (lastMessage?.role === 'assistant' && 'tool_calls' in lastMessage) {
lastMessage.tool_calls; // 型が絞り込まれる
}
if (toolCall.type === 'function') {
toolCall.function.name; // 型が絞り込まれる
}
// NG: 非 null アサーション / throw ガード
response.choices[0]!.message.content
const choice = response.choices[0];
if (!choice) throw new Error('...');
// OK: オプショナルチェーン + Nullish Coalescing
response.choices[0]?.message.content ?? ''
state.plan[state.currentStep] ?? ''
このファイルの内容はシェル(zsh)で評価される場合がある。以下の文字はコードブロックの外では使わないこと。
** → zsh の再帰 glob として展開される(マークダウンの太字には使わない)$(...) → コマンド置換として実行される整理完了後、以下の形式でサマリーを出力する:
## コード整理結果サマリー
### 型エラー修正
- [ 修正内容1 ]
- [ 修正内容2 ]
- (型エラーなしの場合は「型エラーなし ✅」)
### 非推奨 API の置換
- [ 置換した API ]
- (非推奨 API なしの場合は「非推奨 API なし ✅」)
### 未使用 import 削除
- [ 削除した import ]
- (未使用 import なしの場合は「未使用 import なし ✅」)
### JSDoc 追加
- [ JSDoc を追加した関数名 ]
- (全関数に JSDoc ありの場合は「追加不要 ✅」)
### 最終確認
- 型チェック: ✅ / ❌