我想为任意的数字字符串定义一个类型,比如"123","0","1234923874“。
我知道我可以将多位数类型定义为一位数类型,如下所示:
type digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
type multiDigitStr = `${digit}${digit}${digit}${digit}${digit}${digit}`;但是我得到了一个错误
Expression produces a union type that is too complex to represent.ts(2590)
此外,上面的类型被限制为6位数,而我可能不知道字符串的长度。
尝试使用正则表达式将一个或多个字符串数描述为一个类型会产生意外的结果:
type multiDigitStr = `${digit}+`;
let a: multiDigitStr;
a = "123412341";产生以下错误:
Type '"123412341"' is not assignable to type '"0+" | "1+" | "2+" | "3+" | "4+" | "5+" | "6+" | "7+" | "8+" | "9+"'
可以创建多位字符串类型吗?
发布于 2021-06-20 10:41:38
是否可以创建多位字符串类型
不是的。
更多
如果TypeScript支持正则表达式验证字符串类型:https://github.com/microsoft/TypeScript/issues/41160,则是可能的
https://stackoverflow.com/questions/68052141
复制相似问题