Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

TypeScript 学習日記 その0001 objectのキーを元にStringLiteralTypesの型を定義する

参考にさせていただいたページ

今日のバージョン

  • TypeScript 4.2.3

文字列の型について

以下のようにすると、変数keyの型はstringになります。

const key: string = 'keyNameA'

以下のようにすると、変数keyの型は'keyNameA'または'keyNameB’になり、この2種類の文字列しか代入できなくなります。

type Key = 'keyNameA' | 'keyNameB'
const key: Key = 'keyNameA'

keyofキーワードを使ってobjectのキーを元に型を設定する

例えば以下のようなオブジェクトがあるとします。

const myObj = {
  keyNameA: '',
  keyNameB: '',
}

以下のようにすると、さきほどの例のように変数keyの型は'keyNameA'または'keyNameB’になり、この2種類の文字列しか代入できなくなります。

type Key = keyof typeof myObj
const key: Key = 'keyNameA'