以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - TypeScript 类型谜题
46. implement Subtract<A, B>

type Subtract<A extends number, B extends number> = {
  0: A,
  1: Subtract<A-1, B-1>
}[B extends 0 ? 0 : A extends 0 ? never : 1];

// Tests
type A = Subtract<1, 1> // 0
type B = Subtract<10, 3> // 7
type C = Subtract<3, 10> // never

上述代码实现了一个 Subtract 类型,用于计算两个正整数之间的差值。只需要输入正整数,并确保第二个数小于等于第一个数即可。例如 Substract<10, 3> 应该返回 7。如果第二个数大于第一个数,那么这个类型将返回 never