TypeScript-属性名称中的方括号是什么意思?

Nar*_*esh 2 typescript

我在某个地方看到了此TypeScript代码。编译没有任何问题:

const eventName = entityName + commandName;
pubsub.publish(triggerName, { [eventName]: response });
Run Code Online (Sandbox Code Playgroud)

我假设它动态创建一个对象文字,其属性名称称为eventName。这个假设正确吗?此功能在TypeScript文档中的何处描述?

CRi*_*ice 6

那不是打字稿功能,而是JavaScript。它称为计算属性。这是它的文档:https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names

此外,它不会使用键创建属性eventName,而是使用键(即变量的值)创建属性eventName。例如,如果eventName = "foo",则{[eventName]: "bar"}与相同{foo: "bar"}

  • 直接链接到页面上的“计算属性名称”部分:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Compulated_property_names (2认同)
  • @MikeHill 谢谢,我已经编辑了我的答案以包含您的链接。 (2认同)

归档时间:

查看次数:

1595 次

最近记录:

8 年,9 月 前