我正在使用typescript開發NPM包。在這個包內,TS文件被設置爲外部模塊。編譯器不會爲外部模塊生成一個.d.ts。我試圖將所有tsc生成的類型定義連接到整個包的單個.d.ts文件中。使用外部模塊創建單個.d.ts問題
我在佈置單個.d.ts文件時遇到了問題(遵循類似於grunt-dts-bundle
中使用的方法)。下面的濃縮示例捕捉了我的問題。
鑑於這種外部模塊聲明和測試文件:
test.d.ts
:
declare module "ExternalWrapper" {
export import Foo = require("FooModule");
}
declare module "FooModule" {
class Foo {
name: string;
}
export = Foo;
}
test.ts
:
import externalWrapper = require('ExternalWrapper');
var t = new externalWrapper.Foo();
運行tsc test.ts test.d.ts -m commonjs
產生這個錯誤:TS2083: Invalid 'new' expression.
如果你改變了「test.ts」看起來像這樣,導入「FooModule」直接:
import Foo = require("FooModule");
var t = new Foo();
它編譯罰款。
編譯器理解externalWrapper.Foo
類型,但它似乎並不表示它是FooModule.Foo
。我沒有得到關於編譯器如何處理通過「導出導入」導出的模塊的信息。
未按上述我可能會看向手動創建.d.ts :(
任何幫助表示讚賞。
歡呼聲,原來如此。我已經看到你的問題在外部模塊.d.ts幾代以上的打字稿問題列表,希望這會消失,如果得到實施:) – Keith 2014-11-18 17:20:48