为什么在TypeScript中默认导出界面的限制?

我正在使用TypeScript 1.5testing版,我试图导出一个接口作为默认导出。 以下代码在Visual Studio和WebStorm中都会导致错误:

export default interface Foo {...} 

但是,下面的代码工作正常:

 interface Foo {...} export default Foo; 

这是devise,这是一个错误,或者我做错了什么?

编辑:谢谢你的回答。 但是,它提出了一个问题,那么使用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) {} } 

TypeScript v2.4.0允许export default interface 。 这是介绍变更的请求 。

我们现在可以做这两个:

 // Foo.ts export interface Foo { } // Bar.ts export default interface Bar { } // Baz.ts import { Foo } from "./foo"; import Bar from "./bar"; export class Baz implements Foo, Bar { }