# 268-实现If
# 题目描述
实现一个 IF
类型,它接收一个条件类型 C
,一个判断为真时的返回类型 T
,以及一个判断为假时的返回类型 F
。 C
只能是 true
或者 false
, T
和 F
可以是任意类型。
例如:
type A = If<true, 'a', 'b'>; // expected to be 'a'
type B = If<false, 'a', 'b'>; // expected to be 'b'
# 分析
相比于前几道题,此题目利用 ts 的 conditional-types (opens new window) 可以非常简单的解决。
# 题解
type If<C extends boolean, T, F> = C extends true ? T : F;
# 知识点
A extends B ? 1 : 2
,ts 的条件判断类型