タイトルは少しわかりにくいかもしれませんが、短いタイトルではもっと簡潔に説明することはできませんでした。しかし、これは私がやりたいことです:
だから、私が探しているのは、ある種の外部型宣言マニフェスト、またはそのようなものです。
これは可能ですか?もしそうなら、どうですか?
これがTypeScriptユーザーにとってナイーブな質問である場合はご容赦ください。しかし、私はTypeScriptの経験がまったくないため、Webを検索する対象がわかりません。多分誰かが私が探しているものに名前を付けることによって正しい方向に私を押すことができれば、私は自分で解決策を見つけることができます。
作成するのは Definition Files です。これらのファイルは、JavaScriptを記述するために使用されます。
簡単にするために、add
という関数があるとします。これは、2つの数値または数値の配列を取ります。
index.js
exports.add = function add(a, b) {
if(args.length == 1) return a.reduce((sum, val) => sum + val, 0)
return a + b;
}
次に、定義ファイル.d.ts
を作成できます。これにより、JavaScript関数が記述されます。ファイル名とファイル構造は、types
などのルートフォルダー内のJSと同じにしてください。
types/index.d.ts
// Accepts two numbers
export declare function add(a: number, b: number): number
// Accepts an array of numbers
export declare function add(a: number[]): number
このファイルが行うことは、ロジックなしでfunctions/classes/interfaces/modules
などをすべて記述することだけです。私の例からわかるように、ファイル内でオーバーロードを作成できます。これにより、関数を使用できる複数の方法を定義できます。このファイルはJSDocもサポートしているので、私もそれを使用します。
次に、package.jsonを変更する必要があります。これにより、TypeScriptパーサーに、このパッケージの定義を見つける場所が通知されます。
{
"types": "types/index.d.ts"
}
基本的に、.d.ts
を作成するために必要なことはこれだけです。