モジュールの種類
型のインポートとエクスポート
モジュール(ファイル)間で型を共有することはよくある。Flowでは、型エイリアス、インターフェイス、クラスを1つのファイルからエクスポートして、別のファイルにインポートできます。
exports.js
1export default class MyClass {};2export type MyObject = { /* ... */ };3export interface MyInterface { /* ... */ };
imports.js
import type MyClass, {MyObject, MyInterface} from './exports';
ファイルの最上部に
@flow
を追加することを忘れないでください。そうしないとFlowはエラーを報告しません.
値を型としてインポートしてエクスポートする
Flowは、typeof
を使用して他のモジュールによってエクスポートされた値の型をインポートすることもサポートします。
exports.js
1const myNumber = 42;2export default myNumber;3export class MyClass { /* ... */ };
imports.js
import typeof MyNumber from './exports';
import typeof {MyClass} from './exports';
const x: MyNumber = 1; // Works: like using `number`
他の型のインポートと同様に、このコードはコンパイラによって削除できるため、他のモジュールに対するランタイムの依存関係を追加しません。