TypeScript类型体操题目5:实现一个Subtract类型,可以在类型上做正整数算术减法运算,结果为非负数

301 阅读1分钟

实现一个TupleM2N类型,入参两个个number M,N,返回从[M, N + M)的的元组 - 掘金 (juejin.cn)

上一期的答案

type TupleO2N<T extends number, U extends number[] = []> = U['length'] extends T
  ? U
  : TupleO2N<T, [...U, U['length']]>;
  
type TupleM2N<
  M extends number,
  N extends number,
  L extends any[] = [...TupleO2N<M>, ...TupleO2N<N>]
> = TupleO2N<L['length']> extends [...TupleO2N<N>, ...infer R] ? R : never;

解析
这里需要借助前面已经实现的TupleO2N

今日题目:实现一个Subtract类型,可以在类型上做正整数算术减法运算,结果为非负数

预期

type A = Subtract<3,3> // 0
type B = Subtract<10,7> // 3

答案明天见

原文地址