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
相关产品推荐
相关产品推荐

