AngularのTypeScript 7搭載コンパイラに関す... ノート

AngularのTypeScript 7搭載コンパイラに関するアップデート

Angularの開発チームは、パフォーマンスの向上とネイティブツールの活用を目指し、新しいコンパイラ「ngp」を導入しています。長年にわたり、Angularはフレームワークのスケーリングに不可欠なTypeScriptに大きく依存してきました。しかし、TypeScript 7のようなGoでコンパイルされたTypeScriptのバージョンは、Angularの深く統合されたコンパイラと互換性がありません。この問題に対処するため、AngularはコンパイルプロセスをTypeScriptのコンパイラAPIから切り離しています。コンポーネントとテンプレートを処理する、Angular固有の新しいコンパイラを構築しています。この新しいコンパイラは、ビルドパイプラインに対応した変換済みのTypeScriptコードを出力します。多くのフレームワークが現在、コード生成と型チェックを分離しており、しばしばoxcライブラリを使用しています。Rustで書かれたOxcは、Viteのようなツールを支えるJavaScriptの解析とコンパイルのためのネイティブツールチェーンです。新しいAngular Preprocessor、ngpは、ネイティブツールチェーンと同様のパフォーマンス上の利点を得ることを目指しています。Ngpは、Angularデコレータのコンパイルとテンプレート式の型チェックの促進という2つの主要なタスクを実行します。ソースファイルごとに2つの出力ファイルを生成します。1つはコンパイル済みコード用、もう1つは型チェック用です。現在、ngpはハイブリッドアーキテクチャであり、フロントエンドにはRust、バックエンドにはTypeScriptを使用しています。Oxcで構築されたRustフロントエンドは、コードを解析し、Angularの構造を識別します。TypeScriptバックエンドは、コンパイルタスクを実行し、出力を生成します。NgpはMinimum Viable Productの段階に近づいており、実験的なバージョンが今年後半にリリースされる予定です。初期テストは有望ですが、完全なビルドプロセスをベンチマークした後でなければ、決定的なパフォーマンス比較は不可能になります。新しいコンパイラは、Angular言語サービスを強化するためのプロトタイプも作成されています。型チェックの動作に関連して、軽微な破壊的変更が発生する可能性があります。チームがGoではなくRustとoxcを選択したのは、堅牢なJavaScript/TypeScriptツールチェーンライブラリが利用可能だったためです。
CdXz5zHNQW_M6WIHevykR.png