Skip to main content

IF

题目

实现一个 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'

题目来源:https://tsch.js.org/268/zh-CN

解答

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

题意要求,C必须是boolean类型,所以对非boolean类型的传值,应该按报错处理。
使用C extends boolean进行限制。

使用extends进行条件推断,即可根据判断决定返回的值。