1
サードパーティライブラリの宣言ファイルを作成しようとしていますnode-tap
。単純化の問題がある:ライブラリの名前空間と変数の宣言をマージする
// node_modules/a/index.js
function A() { /* ... */ }
module.exports = new A();
module.exports.A = A;
次のコードは正常にコンパイルできるようにするための正しい*.d.ts
宣言ファイルがどうなりますか?
// test.ts
import * as a from 'a';
import {A} from 'a';
function f(): A {
return a;
}
は、タイプとしてA
を持つこと、それはこの単純な例では省略することができるにもかかわらず、重要であることを言及します。
私はあなたがクラスAを宣言 '維持する必要があると思います{A:typeof A} 'の場合、' aA'は型を参照するだけで 'new aA()'を行うことはできません。 –