別のモジュールからインポートされた型定義がある場合、それをどのように再エクスポートしますか?
/**
* @flow
*/
import type * as ExampleType from './ExampleType';
...
// What is the syntax for exporting the type?
// export { ExampleType };
この質問の最も単純な形式は、「タイプエイリアスをエクスポートするにはどうすればよいですか?」です。簡単な答えは「with export type
!」です
あなたの例では、あなたは書くことができます
/**
* @flow
*/
import type * as ExampleType from './ExampleType';
export type { ExampleType };
「ExampleType
がタイプエイリアスなのはなぜですか?」さて、あなたが書くとき
type MyTypeAlias = number;
タイプエイリアスMyTypeAlias
を明示的に作成しています。このエイリアスはnumber
です。そしてあなたが書くとき
import type { YourTypeAlias } from './YourModule';
YourModule.js
のYourTypeAlias
エクスポートをエイリアスするタイプエイリアスYourTypeAlias
を暗黙的に作成しています。
以下はうまく動作します
export type { Type } from './types';
受け入れられた答えは古く、私の側に警告を投げています。ビューの量を考慮して、フロー0.10+と互換性のある更新された回答を次に示します。
MyTypes.js:
export type UserID = number;
export type User = {
id: UserID,
firstName: string,
lastName: string
};
User.js:
import type {UserID, User} from "MyTypes";
function getUserID(user: User): UserID {
return user.id;
}
私は、@ locropulentonの答えに基づいて、ES6のデフォルトクラスに対してこれを実行するために必要な1行を見つけました。あなたが持っていると仮定します
// @flow
export default class Restaurants {}
Restaurants.js
ファイル内。同じディレクトリのindex.js
ファイルからエクスポートするには、次のようにします。
export type {default as Restaurants} from './Restaurants';