我在某个地方看到了这个TypeScript代码。它编译没有任何问题:
const eventName = entityName + commandName;
pubsub.publish(triggerName, { [eventName]: response });
我假设它动态创建一个名为eventName的属性名称的对象文字。这个假设是否正确?在TypeScript文档中描述了哪个功能?
答案 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"}
相同。