TypeScript 1.5:导出实现接口的默认值

TypeScript 1.5: Export default implementing an interface

在 TypeScript 1.5 中,我在 IFoo.ts 中有以下界面:

// IFoo.ts
interface IFoo<T> {
    bar(): T;
}

以及 FooString.ts 中的实现:

// FooString.ts
export default {
    bar: () => 'Hello world'
}

模块 FooString.ts 如何将其导出的对象文字声明为 IFoo<sring> 的实现?如果没有声明,接口的实现就不会被编译器检查,失去 FooString 模块的编译时检查将会有问题。

export var defaults:IFoo<string> = {
    bar: () => 'Hello world'
}

在 1.5 中进行转换将保留编译时检查,因此这将起作用:

export default <IFoo<string>> {
    bar: () => 'Hello world'
}