跳到主要内容

MinusOne

介绍

给定一个正整数作为类型的参数,要求返回的类型是该数字减 1。

例如:

ts
type Zero = MinusOne<1> // 0
type FiftyFour = MinusOne<55> // 54
ts
type Zero = MinusOne<1> // 0
type FiftyFour = MinusOne<55> // 54
View on GitHub

起点

ts
/* _____________ Your Code Here _____________ */
 
type MinusOne<T extends number> = any
 
/* _____________ Test Cases _____________ */
 
type cases = [
Expect<Equal<MinusOne<1>, 0>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<55>, 54>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<3>, 2>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<100>, 99>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<1101>, 1100>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<9_007_199_254_740_992>, 9_007_199_254_740_991>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
]
 
ts
/* _____________ Your Code Here _____________ */
 
type MinusOne<T extends number> = any
 
/* _____________ Test Cases _____________ */
 
type cases = [
Expect<Equal<MinusOne<1>, 0>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<55>, 54>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<3>, 2>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<100>, 99>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<1101>, 1100>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
Expect<Equal<MinusOne<9_007_199_254_740_992>, 9_007_199_254_740_991>>,
Type 'false' does not satisfy the constraint 'true'.2344Type 'false' does not satisfy the constraint 'true'.
]
 
take the challenge

解决方案

Spoiler warning // Click to reveal answer
ts
type MinusOne<T extends number> = any
 
ts
type MinusOne<T extends number> = any
 
view more solutions