茄子です。
今回はTypescriptの小技を紹介します。
Chart.js ( https://www.chartjs.org/docs/latest/ ) などでグラフを作成する時、ある一点のデータ型をベースとして、その各項目が配列となった型が必要になることがあります。
// 元
type Datapoint = {
key1: number;
key2: Date;
key3: boolean;
}
↓↓
// 各項目の配列化 (Datapoint[] ではない)
type ChartData = {
key1: number[];
key2: Date[];
key3: boolean[];
}
この時、↓の関数で元の型から目的の型を得ることができます。
type ObjectArray<T> = {
[I in keyof T]: T[I][];
};
合わせた例:
type ObjectArray<T> = {
[I in keyof T]: T[I][];
};
type Datapoint = {
key1: number;
key2: Date;
key3: boolean;
};
type ChartData = ObjectArray<Datapoint>;