let a : any;
let m = new Map<any, any>(Object.keys(a).map(prop => ([prop.x, prop.y])));
与esnext
目标产生错误打字稿错误编译地图
文件: '文件:///c%3A/GIT/MainLine/members/src/tasks/list/decTest2.ts' 严重程度:'错误' 消息:'类型'any [] []'的参数不可分配给类型为'Iterable < [any,any]>'的参数。 属性类型'[Symbol.iterator]'不兼容。 类型'()=> IterableIterator'不可分配给类型'()=>迭代器< [any,any]>'。 类型'IterableIterator'不可分配为键入'Iterator < [any,any]>'。 属性'next'的类型不兼容。 类型'(value ?: any)=> IteratorResult'不可分配给类型'(value ?: any)=> IteratorResult < [any,any]>'。 类型'IteratorResult'不可分配为键入'IteratorResult < [any,any]>'。 类型'any []'不可分配为键入'[any,any]'。 类型'any []'中缺少属性'0'。' 在: '4,27' 源: 'TS'
这很奇怪,因为
let m2 = new Map<any, any>([[1, 2], [2, 3], ['a', 'b']])
编译罚款。我需要添加到第一个样本才能编译它?
注意,我知道
let m2 = new Map<any, any>(<any>[[1, 2], [2, 3], ["a", 'b']])
也将修复它,但我想明白为什么这样的错误了,看看是否有一个更体面的修复。
prop是一个字符串。你确定你不是要写一个[prop] .x而不是prop.x? – Sebastian