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

TypeScript中如何声明键为string值为number的字典列表类型?

TypeScript 正确声明键为string、值为number的字典数组

你原代码const dict: string[] = [];声明的是字符串类型数组,不符合字典列表的要求,可通过以下两种方式修改:

  • 方式1:使用内置Record工具类型(推荐,写法更简洁)
    const dict: Record<string, number>[] = [];
    
    Record<string, number>是TypeScript内置的泛型工具类型,专门用来描述「键为string类型、值为number类型」的字典结构,末尾加[]代表这是由该类字典组成的数组。
  • 方式2:手动定义对象索引签名(和上面写法效果完全等价)
    const dict: { [key: string]: number }[] = [];
    
    该写法直接通过索引签名[key: string]: number明确约束:对象中所有字符串类型的键,对应的值必须是number类型,末尾加[]同样代表对应数组类型。

类型声明生效后,TypeScript会自动做类型校验:

合法操作(不会报错):

dict.push({ count: 10, total: 200, price: 39.9 });

非法操作(TS会直接抛出类型错误):

dict.push({ username: "zhangsan" }); // 值为字符串,不符合number约束
dict.push(123); // 数组元素不是字典对象,类型不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 23:24:26