🆑

undefinedを含むユニオン型からundefinedを取り除く

2022/11/28に公開

結論

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をユニオン型で指定します。

以上、ユニオン型から特定の型を取り除く方法でした。

GitHubで編集を提案

Discussion