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

TypeScript中嵌套模板字符串动态获取对象属性问题

动态获取对象属性的解决方案

嘿,这个问题我之前帮不少开发者解决过——本质是JavaScript里动态属性访问的常见坑:当你想通过变量里的字符串来访问对象属性时,直接用点语法肯定不行,因为JS会把变量名当成字面量属性名去查找,而不是读取变量的实际值。

给你两种实用的解决办法:

1. 方括号语法(最直接推荐)

这是处理动态属性访问的标准方式,把存储属性名的变量放进方括号里就行,JS会自动求值变量的内容,然后去对象里匹配对应属性:

// 示例对象
const targetObj = { testcolumn: "这是你要的目标值" };
// 存储属性名的变量
const propName = "testcolumn";

// 动态获取属性
const result = targetObj[propName];
console.log(result); // 输出:这是你要的目标值

2. 结合模板字符串(满足你的嵌套字面量需求)

如果你的场景需要拼接属性名(比如从多个变量生成属性名),模板字符串可以嵌入到方括号里使用:

const baseName = "test";
const suffix = "column";

// 用模板字符串拼接属性名
const result = targetObj[`${baseName}${suffix}`];
console.log(result); // 输出:这是你要的目标值

当然如果只是单一变量的话,直接用targetObj[propName]就够了,模板字符串在这里属于“能用但没必要”的操作,但复杂拼接场景下会很方便。

额外提醒

  • 如果属性名包含空格、连字符这类特殊字符,方括号语法是唯一可行的方式(点语法不支持这类属性名)
  • 记得提前确认变量里的字符串确实是对象存在的属性,不然会返回undefined

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:12:28