Я использую 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) {}
}