米Microsoftは、プログラミング言語TypeScriptの次期版「バージョン5.7」のベータ版を公開した。TypeScriptはApache License Version 2.0で公開しているオープンソースソフトウェア。
新版では、コード内に存在はするが、決して初期化されることのない変数を検知して、エラーとする機能を追加した。TypeScriptではこれまでも、呼び出されることがない、つまり初期化されることのない変数の検知を試みてきたが、変数が別の関数から呼び出される場合などもあり、正確に検知することが難しかった。今回の新版でも、変数は「おそらく呼び出される」と見なしているが、どこからも呼び出されない変数はエラーとするようになった。
また、import文でTypeScriptのファイルを相対パスで指定したときに、変換後のJavaScriptファイルを絶対パスで指定するように自動的に書き換える機能が加わった。import文でTypeScriptのファイルを指定しても、実行時に実際に呼び出すファイルは変換後のJavaScriptファイルであり、TypeScriptでも本来はこのような呼び出し方は認めていない。ただし、「--allowImportingTsExtensions」コンパイラオプションを付けたときに限って認めていた。
今回は、新しいコンパイラオプションとして「--rewriteRelativeImportExtensions」を追加した。このオプションを付けてファイルをコンパイルすると、import文でTypeScriptのファイルを相対パスで指定しても、変換後のJavaScriptファイルを絶対パスで指定するように書き換える。
TypeScriptは、記述したプログラムをコンパイラでJavaScriptに変換して実行する仕組みになっているが、最近は「Bun」「Deno」「ts-node」「tsx」など、TypeScriptファイルを直接実行するランタイムが現れ始めており、「Node.js」もTypeScriptをそのまま実行する機能を実験的に採り入れいている。Microsoftは、今回加わったimport文を書き換える機能が、TypeScriptを直接実行するときに役立つとしている。
ほかにも、コンパイル時にECMAScript 2024準拠のランタイムをターゲットに指定する機能や、V8 JavaScriptエンジンのコンパイル済みファイルのキャッシュを活用する機能など、さまざまな新機能が加わっている。
Microsoftは、今回のベータ版でTypeScript 5.7の新機能追加は終了とし、今後は不具合の修正に集中するとしている。そして数カ月後にはRelease Candidate(RC)を公開し、その後まもなく正式版を公開する計画を立てている。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です