ニュース
JavaScriptに「型」を ~Microsoftが新構文を提案へ
TypeScriptの知見をもとにした「コメントとしての型」
2022年3月10日 10:42
米Microsoftは3月9日(現地時間)、JavaScript言語に型構文(Type Syntax)を提案する方針を発表した。とはいえ、一般的にプログラミング言語で「型」と呼ばれるものとはかなり違ったものになりそうだ。
JavaScriptには型がないが、代わりに型のあるTypeScript言語で記述してJavaScriptへコンパイル(変換)したり、JSDoc形式のコメントという形でJavaScriptコードに型情報を記述することは広く行われている。こうすることで「Visual Studio Code」をはじめとする開発環境は型情報を知り、型チェックや入力補完、リファクタリングといったコーディング支援機能を開発者に提供できるようになる。コーディング支援機能の有無は生産性に直結するため、多少面倒でもこうした手順を踏むことには大きな価値がある。
/**
* @param a {number}
* @param b {number}
*/
function add(a, b) {
return a + b;
}
しかし、ちょっとしたコードにいちいちJSDocコメントを書くのは冗長だ。以下のようなTypeScript構文で型情報を記述し、そのまま実行できれば便利だろう。
function add(a: number, b: number) {
return a + b;
}
もちろんこのままではWebブラウザーで実行できないが、「単なるコメント」として型情報(上記の例で言えば「: number」の部分)だけ無視してもらえれば、問題は簡単に解決できる。
function add(a, b) {
return a + b;
}
このようにすれば「型のないJavaScript」という言語仕様に大きな手を加えることなく、「あたかも型があるような構文」で記述し、コーディング支援機能の恩恵を受けられるというわけだ。この構文はTypeScriptと同じだが、今回の仕様がJavaScriptで受け入れられればコンパイルは不要となる。
このアイデアは「コメントとしての型」(types as comments)と呼ばれており、同社がTypeScript言語の開発で得た知見をもとにしている。提案はまだ「Stage 0」の段階だが、同社は2022年3月の「TC39」のプレナリーミーティングで「Stage 1」の提案を発表したいとしている。「Stage 1」に到達すれば、この構文のサポートがECMAScriptで検討され、JavaScriptへの導入の道がひらける。