2023.10.25[Wed]

Typescript 各プロパティを配列化した型を作る

  • TypeScript

茄子です。
今回は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>;

Share

video.js 8.6.0 をReact + TypeScriptで実装するShopifyのメニューやアイコンをログインで切り替える方法