我正在使用 TypeScript 1.5 beta,并且正在尝试将接口导出为默认导出。以下代码会在 Visual Studio 和 WebStorm 中导致错误:
export default interface Foo {...}
但是,以下代码可以正常工作:
interface Foo {...}
export default Foo;
这是设计使然,是错误还是我做错了什么?
编辑:谢谢你的回答。然而,这引出了一个问题,那么使用 ES6 模块语法导入接口的公认方法是什么?
这有效:
// Foo.ts
export interface Foo {}
// Bar.ts
import {Foo} from 'Foo'; // Notice the curly braces
class Bar {
constructor(foo:Foo) {}
}
但是,既然这样可行,为什么不允许默认导出并保存花括号呢?
// Foo.ts
export default interface Foo {}
// Bar.ts
import Foo from 'Foo'; // Notice, no curly braces!
class Bar {
constructor(foo:Foo) {}
}