是否可以使用TypeScript在运行时生成的值来初始化ReadOnlyMap
?如果在构造Map
的过程中提供了数组,则可以初始化Map
,但是如果通过变量将数组传递给数组,则会失败。请参见下面的代码。
// Works.
let X: ReadonlyMap<number, number> = new Map([
[0, 0],
[1, 1],
]);
let Y = [
[0, 0],
[1, 1],
];
// Does not work.
// Argument of type 'number[][]' is not assignable to parameter of type 'ReadonlyArray<[number, number]>'.
// Type 'number[]' is missing the following properties from type '[number, number]': 0, 1
let Z: ReadonlyMap<number, number> = new Map(Y);
是否有另一种方法可以在单个语句中构造Map
?我要避免更新一个空的Map
,为每个值调用set()
,然后将其引用复制到ReadonlyMap
。
答案 0 :(得分:0)
您是否尝试过明确键入输入数组?例如:
const Y: ReadonlyArray<[number, number]> = [
[0, 0],
[1, 1],
];
const Z: ReadonlyMap<number, number> = new Map<number, number>(Y);