modern-javascript について
言語の意味論、ランタイム対応、ツールチェーンとの互換性を考慮して変更を行う JavaScript スキルです。コードの動作を保ちながらモダナイズし、関連する標準や互換性資料を確認する開発者向けです。
主な機能
- 01ランタイムとツールチェーンの対応確認
- 02評価順序と並行処理の挙動を維持
- 03変換とポリフィルの区別
- 04必要な互換性資料の参照
- 05変更後の挙動と代替策の検証
活用シーン
- 01指定ランタイムに合わせたコードのモダナイズ
- 02プロジェクト対象環境に対応する構文の選択
- 03非同期イテレーションと Promise の挙動評価
- 04互換性の代替策の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ccheney/ robust-skills --skill modern-javascriptインストール後、Claude Code で/modern-javascriptを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/CHEATSHEET.mdCOMPATIBILITY.mdCONCURRENCY.mdES2016-ES2017.mdES2018-ES2019.mdES2022-ES2023.mdES2024.mdES2025.mdES2026.mdPROMISES.mdUPCOMING.md詳細
モダン JavaScript
仕様のステータス、ランタイムのサポート、ツールチェーンのサポートは分けて考えてください。ユーザーの明示的な指示は、このスキルのガイドラインより優先されます。
対象環境に合わせて作業する
関連する JavaScript、必要な動作、宣言されたランタイムを入力として使用します。機能に応じて、engines、ブラウザーのターゲット、ロックファイル、ビルド設定を確認してください。新しい構文を使うためだけに、対応環境の基準を独自に設定したり、ランタイムをアップグレードしたりしないでください。
サポートされている標準化済みの機能を優先してください。ユーザーまたはプロジェクトが選択し、保守されているトランスフォームまたはポリフィルが必要なリビジョンを実装している場合は、プロポーザルを採用してもかまいません。バンドル版やサポート表は、特定時点のスナップショットです。状況の変化は、以下の情報源で確認してください。
セマンティクスを維持する
- モダナイズする際は、ミューテーション、プロパティアクセス、イテレーターの消費、評価順序、エラー伝播、並行処理の動作を維持してください。
- 構文変換とランタイムポリフィルを区別してください。TypeScript の宣言では、ランタイムに存在しない API は補われません。
- イテレーターヘルパーは遅延評価され、1 回限りの処理として扱ってください。
Array.fromAsyncは順次処理で消費しますが、Promise.allはすでに開始された処理を並行して監視します。 - 完了を待つ必要がある場合は、
forEach(async ...)を使わないでください。拒否やタイムアウトだけでは、実行中の処理はキャンセルされません。 fetchやstructuredCloneなどのホスト API と ECMA-262 の機能を区別し、Intlは別規格の ECMA-402 と区別してください。- 撤回された Records & Tuples 構文を導入したり、レガシーなデコレーターのセマンティクスと標準形式のセマンティクスを暗黙に切り替えたりしないでください。
依頼されたコードまたは説明を提示し、該当する場合は必要な互換性対応についても記載してください。変更された動作と、出荷するフォールバックを検証してください。構文に関する回答にプロジェクトのすべてのチェックを必須とするのではなく、変更に見合ったチェックを選んでください。
参考資料
すべてのエディションではなく、必要なセマンティクスまたは互換性のトピックを参照してください。
| 作業 | 参考資料 |
|---|---|
| ランタイムのターゲット、Babel、TypeScript、ポリフィル | COMPATIBILITY.md |
| 非同期関数と初期の年次追加機能 | ES2016-ES2017.md |
| オブジェクトスプレッド、非同期イテレーション、RegExp、フラット化 | ES2018-ES2019.md |
| クラス、プロパティチェック、コピーによる変更 | ES2022-ES2023.md |
| グループ化、Promise リゾルバー、バッファー、Unicode セット | ES2024.md |
| Set/イテレーターヘルパー、インポート属性、RegExp | ES2025.md |
Array.fromAsync などの ES2026 追加機能 | ES2026.md |
| Temporal、リソース管理、プロポーザル、撤回された構文 | UPCOMING.md |
| Promise コンビネーターとエラーの動作 | PROMISES.md |
| プール、再試行、キャンセル、非同期イテレーション | CONCURRENCY.md |
| コンパクトな構文一覧 | CHEATSHEET.md |
エディションへの収録状況は固定版 ECMA-262、プロポーザルのステータスはTC39 のプロポーザル一覧、利用可能性はランタイムおよびツールチェーンの公式ドキュメントで確認してください。