JavaScriptファイルfoo.js
が独自の宣言ファイルfoo.d.ts
と一貫していることをTypeScriptコンパイラでチェックすることはできますか?TypeScriptは、.jsファイルが独自の.d.ts宣言と一貫していることを確認できますか?
さまざまな理由から、私たちはJavaScriptを使いたいと思っています。可能であればTypeScriptを使用して、1)独自のJavaScriptコードがタイプセーフであることを確認する、2)TypeScriptの使用に関心のある顧客に宣言を利用できるという2つの目標を達成することが大切です。
与えられたJavaScriptファイルfoo.js
に対して、目標#2(TypeScriptの顧客をサポートする)を満たすために対応するファイルfoo.d.ts
を作成することができます。しかし、私たちが知る限りでは、foo.d.ts
の存在はfoo.js
のチェックをもたらさない。つまり、宣言ファイルは外部の消費者にとってはfoo.js
の関心事であり、コンパイラはJavaScriptコードが独自の.d.ts宣言と一貫しているかどうかを確認しません。
我々はfoo.js
内JSDocのタイプのアノテーションを使用して実験してきた、と活字体コンパイラはは、そのファイル内のコードは、これらの宣言された型と一致していることを確認しません。それは目標#1(私たち自身のコードをチェックしてください)を満たすように見えます。
しかし、jsDocアノテーションは、.d.ts宣言ファイルで可能な完全なTypeScript構文ほど強力ではありません(たとえば、ジェネリックのjsDocサポートは基本的なものです)。さらに、TypeScriptコンパイラは、jsDocアノテーションが.d.ts宣言と一貫しているという検証を提供していないようです。これらの2つのタイプの情報源の間に矛盾が生じるおそれがあります。
このようなJavaScriptプロジェクトの文脈でTypeScriptの型チェックを利用する最良の方法についてのガイダンスがあります。
あなたはユニットテストスクリプトを使用している場合、それは活字体に変換する価値があるかもしれません。そうすれば、強く型付けされたインターフェースに自信が持てます。 –
@ChrisReynolds良いアイデア、ありがとう。 –