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

如何在TypeScript中创建键为String、值为List<String>的Map

TypeScript 实现类似 Java Map<String, List> 的方案

TS 中没有单独的 List 或 ArrayList 类型,原生数组string[](等价于Array<string>)完全覆盖 Java 中字符串列表的能力,对应需求可以按以下方式实现:

基础声明写法

直接给 Map 显式指定泛型参数即可,泛型第一个参数是 key 的类型,第二个是 value 的类型:

// 无封装场景直接声明
const myMap = new Map<string, string[]>();

常用操作示例:

  • 新增键值对:myMap.set('testKey', ['val1', 'val2'])
  • 读取值:const valList = myMap.get('testKey'),返回值类型自动推导为string[] | undefined
  • 为已有key追加元素:
    if (myMap.has('testKey')) {
      myMap.get('testKey')!.push('newVal')
    }
    

类私有属性写法(和你给出的Java代码完全对应)

Java 中类私有属性的写法对应 TS 实现如下:

class DemoClass {
  // 私有Map属性,类型为string对应字符串数组的映射
  private myMap = new Map<string, string[]>();
}

常见报错原因

如果之前的写法无法运行,大概率是以下问题:

  • 错误使用了 Java 中的类型名:TS 中没有内置List、ArrayList、HashMap类型,直接用原生Map和string[]即可
  • 类型名大小写错误:TS 中字符串基础类型是小写string,不要写大写的String
  • 没有给Map指定泛型参数:未指定泛型的new Map()默认推导为Map<unknown, unknown>,后续赋值会触发类型不匹配报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:30:06