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

119 阅读1分钟

实现一个Divide类型,可以在类型上做正整数算术除法运算,结果为非负整数

上一期的答案


type Tuple<T extends number, U extends void[] = []> =
    U['length'] extends T ? U : Tuple<T, [void, ...U]>
    
type Divide<N extends number, M extends number, R extends any[] = []> =
    M extends 0   
    ? never
    : Tuple<N> extends [...Tuple<M>, ... infer F] ? Divide<F['length'], M, [any, ...R]> : R['length']

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

预期

type A = Multiply<3, 3> // 9
type B = Multiply<10, 2> // 20
type C = Multiply<10, 0> // 0

答案明天见

原文地址