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