实例化导出的 TypeScript 接口
Instantiating an exported TypeScript interface
我似乎找不到在模块外强类型化自定义类型的方法,即使接口已经被导出。以带有导出的 TestItem
的测试模块为例
module Test {
export interface TestItem {
one: string;
two: string;
}
export class TestingClass {
private _item: TestItem;
constructor(private item: TestItem) {
if (!item) {
throw new TypeError();
}
this._item = item;
}
}
}
理想情况下我可以做类似
的事情
var testItem = new Test.TestItem{
one: "Test",
two: "Test"
};
这将强制执行 TestItem 的外观。但是目前我能让它工作的唯一方法更像是
var testItem = {
one: "test",
two: "test"
}
var testClass = new Test.TestingClass(testItem);
在模块外创建TestItem时,不一定知道它需要长什么样。没有显示导出的界面,当您执行 Test.
并查看选项时,您只会看到导出的 class。在 TS 2.0.5 中导出接口有什么不同吗?
您想使用接口名称作为变量的类型:
var testItem: Test.TestItem = {
one: "Test",
two: "Test"
};
我似乎找不到在模块外强类型化自定义类型的方法,即使接口已经被导出。以带有导出的 TestItem
的测试模块为例module Test {
export interface TestItem {
one: string;
two: string;
}
export class TestingClass {
private _item: TestItem;
constructor(private item: TestItem) {
if (!item) {
throw new TypeError();
}
this._item = item;
}
}
}
理想情况下我可以做类似
的事情var testItem = new Test.TestItem{
one: "Test",
two: "Test"
};
这将强制执行 TestItem 的外观。但是目前我能让它工作的唯一方法更像是
var testItem = {
one: "test",
two: "test"
}
var testClass = new Test.TestingClass(testItem);
在模块外创建TestItem时,不一定知道它需要长什么样。没有显示导出的界面,当您执行 Test.
并查看选项时,您只会看到导出的 class。在 TS 2.0.5 中导出接口有什么不同吗?
您想使用接口名称作为变量的类型:
var testItem: Test.TestItem = {
one: "Test",
two: "Test"
};