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

TypeScript中创建字典时如何让常量值替代常量名作为键名?

解决TypeScript中用常量值作为对象键名的问题

这是个很常见的小坑,我来帮你快速搞定!

你当前的代码里,对象字面量直接写myKey时,JavaScript/TypeScript会默认把它当作字符串字面量键名,而不是去读取变量myKey的值。所以才会得到{ myKey: 'some value' }而不是你期望的结果。

解决方案:使用计算属性名

在TypeScript(以及ES6+的JavaScript)中,想要用变量的值作为对象的键名,只需要把键名用方括号[]包裹,这就是「计算属性名」语法。

修正后的代码如下:

const myKey: string = 'something'
const myDict: { [id: string]: string } = { [myKey]: 'some value' }

原理说明

方括号[myKey]会告诉编译器:这里不要把myKey当成字符串,而是去取这个变量的实际值(也就是'something'),然后用这个值作为对象的键名。这样生成的字典就完全符合你的预期:{ 'something': 'some value' }。

这个语法非常实用,不管是动态生成键名,还是用常量值固定键名的场景都能用上,而且是ES6之后的标准语法,TypeScript完全兼容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:38:13