我似乎无法找到在模块外强烈键入自定义类型的方法,即使已导出接口也是如此。以带有导出的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.
并查看选项时,您只能看到导出的类。在TS 2.0.5中导出接口有什么不同吗?
答案 0 :(得分:2)
您希望将接口名称用作变量的类型:
var testItem: Test.TestItem = {
one: "Test",
two: "Test"
};