TypeScript入門 Ifの動きをする型定義

3つのジェネリクス(C、T、F)を受け取り、CがtrueならTを、falseならFを返す。

type If<C extends boolean, T, F> = C extends true ? T : F

Cはbooleanではないといけない点に注意して、C extends boolean とする。これによって、以下はコンパイルエラーになる。

type T1 = If<null, 'a', 'b'>