实例化导出的 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"
};