我有这个代码(这里只有相关部分):
interface Page {
name: String;
displayName: String;
}
let pages: Page[] = [{name: 'x', displayName: 'y'}, {name: 'a', displayName: 'b'}];
let m = new Map(pages.map(page => [page.name, page.displayName]));
我得到了这个错误(来自 tslint):
Argument of type 'String[][]' is not assignable to parameter of type 'Iterable<[{},{}]>'
这些类型定义如下:
map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
interface MapConstructor {
new <K, V>(): Map<K, V>;
new <K, V>(iterable: Iterable<[K, V]>): Map<K, V>;
prototype: Map<any, any>;
}
(两种类型都来自这里)
我究竟做错了什么?
谢谢!