🆑
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