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

时间:2017-11-28 21:50:22

标签: typescript

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

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

我假设它动态创建一个名为eventName的属性名称的对象文字。这个假设是否正确?在TypeScript文档中描述了哪个功能?

1 个答案:

答案 0 :(得分:4)

这不是打字稿功能,而是javascript。它被称为计算属性。以下是文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names

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