この回答は、TypeScriptに変換したくないJavaScriptがあることを前提としていますが、への最小限の変更で型チェックを利用したいと考えています.js
。.d.ts
ファイルには、非常に多くのCまたはC ++ヘッダファイルのようなものです。その目的は、インターフェースを定義することです。次に例を示します。
mashString.d.ts
/** Makes a string harder to read. */
declare function mashString(
/** The string to obscure */
str: string
):string;
export = mashString;
mashString.js
// @ts-check
/** @type {import("./mashString")} */
module.exports = (str) => [...str].reverse().join("");
main.js
// @ts-check
const mashString = require("./mashString");
console.log(mashString("12345"));
ここでの関係mashString.d.ts
は、インターフェースの定義、インターフェースのmashString.js
実装、およびインターフェースのmain.js
使用です。
タイプチェックを機能さ// @ts-check
せるには、.js
ファイルに追加します。しかし、これmain.js
はインターフェースを正しく使用することを確認するだけです。mashString.js
それが正しく実装されるようにするため/** @type {import("./mashString")} */
に、エクスポートの前に追加します。
を使用して初期.d.ts
ファイルを作成tsc -allowJs main.js -d
し、必要に応じて手動で編集して、型チェックとドキュメントを改善できます。
ほとんどの場合、ここでは実装とインターフェースの名前は同じですmashString
。ただし、別の実装も可能です。たとえば、名前mashString.js
を変更しreverse.js
て別の名前を付けることができencryptString.js
ます。