2015-06-27 137 views
0

我希望能够到另一个打字稿环境声明和实现在不同的文件

例为对象的环境声明在一个文件中,而是提供实现:

Test.d .TS

interface TestConstructor { 
    new(value?: any): void; 
    ... 
} 

interface Test { 
    ... 
} 

declare var Test: TestConstructor; 

Test.ts

var Test = (function() { 
    function Test(value) { 
    } 

    return Test; 
})(); 

错误:

Subsequent variable declarations must have the same type. Variable 'Test' must be of type 'TestConstructor', but here has type '(value: any) => void'.

我知道这似乎是使用打字稿的一种奇怪的方式,但原因是我希望建立与打字稿不支持的功能(关闭对象/值属性),所以我不能使用这个类。

此外,我想出货Test.d.ts和Test.js,但不是Test.ts

回答

2

您的代码并不表明Test.ts需要引用Test.d.ts,所以只是通过自身

编译 Test.ts

tsc Test.ts

,而不是

tsc Test.ts Test.d.ts

+0

灿这是从视觉工作室完成的? – series0ne

+0

我有一段时间没有使用过Visual Studio,所以可能会有比这更好的方法。您可以将这些文件放在单独的项目中。您也可以将Test.d.ts的Build Action属性更改为None,但如果该文件包含错误,编译器将无法捕获它们。 – curpa