【发布时间】:2022-06-18 22:18:55
【问题描述】:
是否可以编写一个实用程序类型Number<T>,它接受可以转换为数字的字符串文字类型,如果不是,它返回never 类型?
type Five = Number<'5'> // `Five` is of the type number 5
我只是想先发制人地回答我为什么要这样做的问题:
我问这个问题的原因是我正在尝试编写一个 Add 实用程序类型来添加数字
type createArray<Len, Ele, Arr extends Ele[] = []> = Arr['length'] extends Len ? Arr : createArray<Len, Ele, [Ele, ...Arr]>
type Add<A extends number, B extends number> = [...createArray<A, 1>, ...createArray<B, 1>]['length']
现在可以了
type Answer = Add<3,10> // Answer is 13
但是它只接受number 类型。我想让它也不接受string 类型,这样它也可以工作type Answer = Add<'3','10'>
【问题讨论】:
标签: typescript