🆑
undefinedを含むユニオン型からundefinedを取り除く
結論
Exclude<T, U>
というユーティリティ型を使うことで、簡単にundefined
を含むユニオン型からundefined
を取り除くことができます。
例
例えば'sm' | 'md' | 'lg' | undefined
という型から、'sm' | 'md' | 'lg'
がキーのオブジェクト型を生成したいとします。
type Size = 'sm' | 'md' | 'lg' | undefined;
const obj = { [key in Exclude<Size, undefined>]: any } = {
sm: {},
md: {},
lg: {},
};
Exclude<T, U>
はT
には対象のユニオン型を、U
には取り除きたい型を指定します。
今回の例では、Size
という型からundefined
を取り除くことになりますね。
ちなみに複数の型を取り除きたい場合はU
をユニオン型で指定します。
以上、ユニオン型から特定の型を取り除く方法でした。
Discussion