Integers Comparator
约 337 字大约 1 分钟
2026-02-11
题目
Implement a type-level integers comparator. We've provided an enum for indicating the comparison result, like this:
- If
ais greater thanb, type should beComparison.Greater. - If
aandbare equal, type should beComparison.Equal. - If
ais lower thanb, type should beComparison.Lower.
Note that a and b can be positive integers or negative integers or zero, even one is positive while another one is negative.
解题思路
待补充
答案
enum Comparison {
Greater,
Equal,
Lower,
}
type Comparator<A extends number, B extends number> = any验证
import type { Equal, Expect } from '@type-challenges/utils'
type cases = [
Expect<Equal<Comparator<5, 5>, Comparison.Equal>>,
Expect<Equal<Comparator<5, 6>, Comparison.Lower>>,
Expect<Equal<Comparator<5, 8>, Comparison.Lower>>,
Expect<Equal<Comparator<5, 0>, Comparison.Greater>>,
Expect<Equal<Comparator<-5, 0>, Comparison.Lower>>,
Expect<Equal<Comparator<0, 0>, Comparison.Equal>>,
Expect<Equal<Comparator<0, -5>, Comparison.Greater>>,
Expect<Equal<Comparator<5, -3>, Comparison.Greater>>,
Expect<Equal<Comparator<5, -7>, Comparison.Greater>>,
Expect<Equal<Comparator<-5, -7>, Comparison.Greater>>,
Expect<Equal<Comparator<-5, -3>, Comparison.Lower>>,
Expect<Equal<Comparator<-25, -30>, Comparison.Greater>>,
Expect<Equal<Comparator<15, -23>, Comparison.Greater>>,
Expect<Equal<Comparator<40, 37>, Comparison.Greater>>,
Expect<Equal<Comparator<-36, 36>, Comparison.Lower>>,
Expect<Equal<Comparator<27, 27>, Comparison.Equal>>,
Expect<Equal<Comparator<-38, -38>, Comparison.Equal>>,
Expect<Equal<Comparator<1, 100>, Comparison.Lower>>,
Expect<Equal<Comparator<100, 1>, Comparison.Greater>>,
Expect<Equal<Comparator<-100, 1>, Comparison.Lower>>,
Expect<Equal<Comparator<1, -100>, Comparison.Greater>>,
Expect<Equal<Comparator<-100, -1>, Comparison.Lower>>,
Expect<Equal<Comparator<-1, -100>, Comparison.Greater>>,
// Extra tests if you like to challenge yourself!
Expect<Equal<Comparator<9007199254740992, 9007199254740992>, Comparison.Equal>>,
Expect<Equal<Comparator<-9007199254740992, -9007199254740992>, Comparison.Equal>>,
Expect<Equal<Comparator<9007199254740991, 9007199254740992>, Comparison.Lower>>,
Expect<Equal<Comparator<9007199254740992, 9007199254740991>, Comparison.Greater>>,
Expect<Equal<Comparator<-9007199254740992, -9007199254740991>, Comparison.Lower>>,
Expect<Equal<Comparator<-9007199254740991, -9007199254740992>, Comparison.Greater>>,
Expect<Equal<Comparator<3.1415, 3.1415>, Comparison.Equal>>,
Expect<Equal<Comparator<3.1415, 3.1414>, Comparison.Greater>>,
Expect<Equal<Comparator<0, 3.1414>, Comparison.Lower>>,
Expect<Equal<Comparator<31.415, 3.1415>, Comparison.Greater>>,
]参考
无
