STUDY MEMO

学習のメモ書き

定数アサーションを使ってリテラル型のユニオン型を作成

型安全をめっちゃ安全にしたい時に使う。 オブジェクトのキーを動的に扱いたい場合や、定数オブジェクトのキーを型として利用したい場合に使用している。

オブジェクトや配列の型をリテラル型に固定。as const(定数アサーション)を使うことでオブジェクトや配列の中身もリテラル型として扱われる。

const Hoge = {
  hoge: "fuga"
} as const; 

typeof Hoge によって、Hoge オブジェクトの型を取得し、keyof を使うことで、Hoge オブジェクトのキーの型を取得している。

type initialHoge = keyof typeof Hoge;

結局何してるかというと、 typeof Hoge は { hoge: "fuga" } という型を取得し、 keyof typeof Hogehogeというリテラル型を取得している。

メモ

  • リテラル型 (literal type) literal: ありのままの TypeScriptではプリミティブ型の特定の値だけを代入可能にする型を表現できます。

リテラル型として表現できるもの boolean, number, string

  • ユニオン型 「いずれかの型」を表現する。

例:

type ErrorCode =
  | 400
  | 401;