You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何正确初始化Map类型数组?

如何在TypeScript中正确初始化Map类型的数组?

错误原因分析

你写的new Map<string, string>[]是语法误用:TypeScript会把末尾的[]解析为对Map<string, string>类型的索引访问操作,而非数组构造语法。但Map类型本身并不支持通过方括号[]直接索引取值(Map的正确取值方式是调用get()方法),也没有定义索引签名,因此抛出了这个类型错误。

正确的初始化方式

1. 空数组字面量(最推荐)

直接用[]创建空数组,类型标注放在变量后即可:

const someMap: Map<string, string>[] = [];

2. Array构造函数

和你最初的写法等价,只是把Array<Map<string, string>>换成了更简洁的Map<string, string>[]类型标注:

const someMap: Map<string, string>[] = new Array<Map<string, string>>();

3. 初始化时添加元素

如果需要一开始就往数组里放Map实例,可以直接在字面量中创建:

const someMap: Map<string, string>[] = [
  new Map([["name", "Alice"]]),
  new Map([["age", "25"]])
];

内容的提问来源于stack exchange,提问作者Billy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:18:32