再利用できる型設定は、外部モジュール化する方が管理しやすい。
外部モジュール化のサンプル
「ts/Hoge/index.tsx」にモジュール化する型設定を用意する。
モジュール化するには頭にexportを付ける。
export interface HogeGroup {
hoge: string;
}
「index.tsx」から、モジュール化した型設定をimportして呼び出す。
import { HogeGroup } from './ts/Hoge/'
その他メモ
入れ子で型を設定することも可能。
export interface HogeGroup {
hoge: string;
mochi: HogeMochi;
}
interface HogeMochi {
name: string;
price: number;
}
HogeMochiのキーの頭に「debu_」を付けてリネームしたモジュールHogeMochiDebuを用意するなら以下のように。
※ただしPのところに型エラーが出る。
type HogeMochiDebuKey<Key> = { [P in keyof Key as `debu_${P}`]: Key[P] }
export type HogeMochiDebu = HogeMochiDebuKey<HogeMochi>;
ここからさらに「weight」というキーを混ぜ込み、モジュールHogeMochiTabesugiを使えるようにするなら以下のように。
interface HogeMochiWeight {
weight: any;
}
export interface HogeMochiTabesugi extends HogeMochiDebu, HogeMochiWeight {}
// typeだと以下の記述
/*
export type HogeMochiTabesugi = HogeMochiDebu & HogeMochiWeight;
*/
サンプルテキストが機能していない。お腹が減っているようでござる(´ -ω- `)