Motomichi Works Blog

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

TypeScript 学習日記 その0003 文字列が入っている配列を元にStringLiteralTypesの型を定義する

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

Template Literal Typesについて

配列を元にStringLiteralTypesの型を定義する方法について

はじめに

以下のように記述すると、変数myStringには 'aaa' または 'bbb' または 'ccc' のいずれかだけが代入できるようになります。

    const myString: 'aaa' | 'bbb' | 'ccc' = 'aaa'

この型を配列を元に定義したい。ということです。

配列を元にStringLiteralTypesの型を定義する方法

以下のようにするとできます。

    const myArray = ['aaa', 'bbb', 'ccc'] as const
    type MyStringLiteralType = typeof myArray[number]

    const myString: MyStringLiteralType = 'aaa'