[题目来源(type-challenges)]https://github.com/type-challenges/type-challenges/blob/main/questions/04425-medium-greater-than/README.md()
问题 #
实现一个 T
> U
的比较函数。
type case1 = GreaterThan<1, 0> // true
type case2 = GreaterThan<5, 4> // true
type case3 = GreaterThan<4, 5> // false
type case4 = GreaterThan<0, 0> // false
type case5 = GreaterThan<20, 20> // false
解答 #
type Arr<T extends number, A extends number[] = []> = A['length'] extends T ? A : Arr<T, [...A, number]>
type GreaterThan<T extends number, U extends number> = T extends U ? false : Arr<T> extends [...Arr<U>, ...infer _Rest] ? true : false
拆分 #
- 用减法判断是否大于