题目来源(type-challenges)
问题
type case1 = ToNumber<'0'> // 0
type case2 = ToNumber<'5'> // 5
type case3 = ToNumber<'12'> // 12
type case4 = ToNumber<'27'> // 27
解答
type ToNumber<S extends string, A extends number[] = []> = `${A['length']}` extends S ? A['length'] : ToNumber<S, [...A, 1]>
拆分
- 利用数组来计算数字
- 利用数组长度转换字符串来判断是否达到目标