Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TypeScriptのパフォーマンス改善

 TypeScriptのパフォーマンス改善

2024/05/11に行われたTSKaigiで発表したLTの資料です!

◎概要
TypeScriptはJavaScriptのスーパーセットとして、静的型付けと高度な型システムを提供し、大規模なプロジェクトの開発を助けています。しかし、これらの利点を最大限に活用するためには、コンパイルパフォーマンスの最適化が不可欠です。コンパイル速度を上げることでビルド時間やテスト実行時間の削減を行うことができます。今回の発表では、TypeScriptのコンパイルパフォーマンスを改善するための具体的な手法とその背後にある理論をいくつか紹介します。

◎内容
1. TypeScriptのパフォーマンスとは何か、そしてなぜそれが重要なのか
2. コンパイル速度を改善するための具体的な手法とその背後にある理論

本資料で紹介している内容については以下の記事で詳しく記載していますので合わせて参照していただければと思います!
https://blog.yajihum.dev/blog/posts/tech/20240218_tips_for_speeding_up_typescript

やじはむ

May 11, 2024
Tweet

More Decks by やじはむ

Other Decks in Programming

Transcript

  1. なぜか? インターフェース: 交差型: 1. 同じプロパティがあった場合はそれを検出し、 単一のフラットなオブジェクトを生成する(プロパテ ィのオーバーライド) →無効な型があった場合はエラーを発生させる 2. エラーの可能性が排除されたフラットな

    オブジェクトのプロパティに対してのみ型チェックが 行われる 3. 型関係がキャッシュされる 1. ただ各プロパティを再帰的にマージするだけで、 never型が生成されることもある 2. マージ結果がnever型などの無効な型であっても エラーは発生せず、型チェックは続行される 3. 型関係がキャッシュされない
  2. コンパイルの流れ 1. 参照したい型が現在のスコープ内で直接アクセス可能かどうかを確認 (同じファイル内で定義された型やインポートされた型など) 2. アクセス可能でない場合、他のモジュールからインポートできるかどうかを確認する 3. インポートできる場合、該当のファイルをインポートするための最も適切なパスを 計算する 4.

    型参照を表現するための新しいノード(ASTの一部)を生成する。これは型注釈としての その型を使用するためのコードとなる 5. 生成された型参照ノードを出力して生成されたコード(型注釈)を 実際のTypeScriptファイルに書き出す