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

TypeScript类型定义中[stuff2: string]方括号语法的含义是什么?

TypeScript索引签名详解

先看你给出的代码:

export type MyType = {
  stuff1?: {
    [stuff2: string]: Stuff3;
  };
}

你对MyType的理解是正确的,这里重点解释[stuff2: string]: Stuff3的含义:

  • 这是字符串索引签名,用来约束这个子对象的键值对规则:
    • 子对象的所有属性键必须是字符串类型(注意:JavaScript中数字键会被自动转为字符串,所以数字键也符合这个规则)
    • 每个属性的值必须严格符合Stuff3类型
  • stuff2只是一个占位符名称,换成[key: string]或者[prop: string]都不影响功能,它只是用来指代子对象的任意键名

举个符合该类型的实例:

// 假设Stuff3是已定义的类型
const demoStuff1 = {
  "user": { /* 符合Stuff3结构的内容 */ },
  "product": { /* 符合Stuff3结构的内容 */ },
  "randomKey123": { /* 符合Stuff3结构的内容 */ }
};

简单来说,这个子对象就是一个字符串键到Stuff3类型的映射字典,可以包含任意数量的符合规则的键值对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:32:40