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

TypeScript中能否像C#一样用new number[]初始化Map的数组值?

解决TypeScript中直接向Map添加空数组值的问题

你想要的写法完全可行,语法本身没有问题,以下是正确的实现方式:

// 先正确声明Map的类型
const myMap: Map<number, number[]> = new Map();

// 直接在set方法中初始化空数组,两种写法都有效
myMap.set(1, []); // TS会自动推断空数组为number[]类型
myMap.set(2, new number[]()); // 显式创建number类型数组

如果之前尝试报错,大概率是Map的类型声明有误——比如不小心写成了Map<number, number>而非Map<number, number[]>,导致TS认为value必须是单个number而非数组。

你提到的先定义数组变量再传入的写法当然没问题,但直接在set里传空数组的写法更简洁,两者功能完全一致:

// 你之前的写法
const arr: number[] = [];
myMap.set(3, arr);

只要Map的类型声明正确,直接使用myMap.set(i, [])或者myMap.set(i, new number[]())都能达到你想要的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:52:04