实例化导出的TypeScript接口

时间:2018-02-11 16:39:46

标签: typescript typescript2.0

我似乎无法找到在模块外强烈键入自定义类型的方法,即使已导出接口也是如此。以带有导出的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中导出接口有什么不同吗?

1 个答案:

答案 0 :(得分:2)

您希望将接口名称用作变量的类型

var testItem: Test.TestItem = {
    one: "Test",
    two: "Test"
};