配列・オブジェクトからリテラル型を生成する
2880 ワード
時々、typeof keyof など使用して別の型を生成したい時があります。
今回紹介するのは、配列・オブジェクトからリテラル型を生成したい時の方法になります。
配列からリテラル型
配列の中身をそのままリテラル型にしたい時の方法です。
const variants = ['primary', 'secondary', 'danger', 'warning', 'safe'] as const
type Variant = typeof variants[number] // "primary" | "secondary" | "danger" | "warning" | "safe"
オブジェクトからリテラル型
オブジェクトの値からリテラル型にしたい時の方法です。
const buttons = {
variant: 'primary',
text: 'hello',
size: 'sm'
} as const
type ButtonProps = typeof buttons[keyof typeof buttons] // "primary" | "hello" | "sm"
一方、keyをリテラル型にしたい時は以下の方法です。
type ButtonProps = keyof typeof buttons // "variant" | "text" | "size"
以上になります。
Author And Source
この問題について(配列・オブジェクトからリテラル型を生成する), 我々は、より多くの情報をここで見つけました https://zenn.dev/moai_san/articles/3b4d1d801bc6c8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol