TypeScript テクニック union 型から特定のメンバーを削除する方法

既存の union 型から特定のメンバーを削除した型作成する方法です。

extends を使用します。

以下の型があります。

type T1 = 'a' | 'b' | 'c'

この型から b を除いた型をつくります。

以下です。

type T1 = 'a' | 'b' | 'c'
type RemoveB<T> = T extends 'b' ? never : T
type WithoutB = RemoveB<T1>
// WithoutB は 'a' | 'c'