logoProsperBao

If

2022-03-22 01

题目来源(type-challenges)

问题

实现一个 IF 类型,它接收一个条件类型 C ,一个判断为真时的返回类型 T ,以及一个判断为假时的返回类型 FC 只能是 true 或者 falseTF 可以是任意类型。

举例:

type A = If<true, 'a', 'b'> // expected to be 'a'
type B = If<false, 'a', 'b'> // expected to be 'b'

解答

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

拆分

  1. C extends boolean 限制 C 只能是 true 或者 false
  2. C extends true 判断 Ctrue
  3. 根据结果返回传入值