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

TypeScript接口中[name: string]语法的名称及含义是什么?

语法正式名称

你提到的[name: string]: string语法在TypeScript中的正式名称是索引签名(Index Signature)。

具体含义

索引签名的作用是为结构不确定的对象定义键、值的类型约束,当你无法提前枚举一个对象的所有属性名,但可以确定属性键的类型和对应值的类型时就可以使用它:

  • 方括号内的name: string是占位声明:表示该对象的所有属性键的类型都是字符串,这里的name是自定义的占位标识符,替换为key、param等其他名称不会影响实际类型约束效果
  • 后面的类型声明(比如你示例里的string | undefined)表示所有属性对应的值的允许类型

你给出的APIGatewayProxyEventPathParameters接口,就是用来描述“所有键为字符串、值为字符串或undefined”的对象,通常用来承载API网关的动态路径参数——因为不同接口的路径参数名不固定,无法提前枚举所有属性,用索引签名可以完美适配这种场景。

补充疑问解答

  • 实现该接口不需要特殊的数组或Map结构,普通的JavaScript原生对象就完全符合要求,因为原生对象本身就支持字符串键的读写操作。
  • 完全支持typeA["str1"] = "str2"这种赋值操作,只要赋值的值符合你定义的值类型约束即可。

代码使用示例

// 声明符合接口的对象
const pathParams: APIGatewayProxyEventPathParameters = {};
// 正常赋值,符合类型要求
pathParams["userId"] = "10086";
pathParams["orderId"] = "ord_abc123";
// 读取值的类型会被自动推断为 string | undefined
const userId = pathParams["userId"];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:05