你好,
常量不能正确地访问和转换联合类型值:
const ID = 0;
const NAME = 1;
let data: [number, string] = [0, "bob"];
// This need cast to compile
let id: number = data[ID];
let name: string = data[NAME];
是否有不支持它的原因?
此致!
塞巴斯蒂安
你好,
常量不能正确地访问和转换联合类型值:
const ID = 0;
const NAME = 1;
let data: [number, string] = [0, "bob"];
// This need cast to compile
let id: number = data[ID];
let name: string = data[NAME];
是否有不支持它的原因?
此致!
塞巴斯蒂安
7条答案
按热度按时间zvms9eto1#
我们对const枚举(#3411)执行了此操作;我也不明白为什么我们不能
aiazj4mn2#
它没有编译,因为你需要一个转换,它不识别ID为0,所以它没有检测到你试图获得联合类型的第一个条目,所以它没有转换它。
需要注意的是,元组的第一个条目是数字,第二个条目是字符串。如果不使用const,data[0]返回数字,data[1]返回字符串。如果使用const,则不起作用。
ckx4rj1h3#
接受PR。
另请参阅相关问题#6804和#6805
mm9b1k5b4#
这一点也要改变吗?
h43kikqp5#
这一点也要改变吗?
我看不出有何不可。
gstyhher6#
我被它咬了,请尽快修复:
2016年10月24日星期一
tct7dpnv7#
@RyanCavanaugh检查TypeScript 3.3.3时,似乎已修复此问题。OP中的
id
和name
正确为number
和string
,无论是否带有显式类型注解。