TypeScript 1.5ベータ版を使用しており、インターフェイスをデフォルトのエクスポートとしてエクスポートしようとしています。次のコードは、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) {}
}
TypeScript v2.4.0ではexport default interface
。 これがpull-requestです 変更を導入しました。
これらの両方を実行できるようになりました。
// 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
{
}
インターフェイスをエクスポートする必要はありません
// Foo.ts
interface Foo {}
// Bar.ts
class Bar {
constructor(foo:Foo) {}
}