В вашем примере кода нет ничего специфичного c для TypeScript. Это просто современное JavaScript.
Давайте разложим то, что здесь происходит:
[modules.module1.tasks.t1.id]
Это имя вычисляемого свойства . Это означает, что объект position
будет иметь свойство, равное modules.module1.tasks.t1.id
.
Если modules.module1.tasks.t1.id
- строка, то это свойство будет точно таким же. В противном случае modules.module1.tasks.t1.id
будет преобразовано в строку.
{ modifier: 1 }
Наше свойство Dynami c будет иметь значение { modifier: 1 }
. Это просто обычное присвоение свойств.
Пример
const modules = {
module1: {
tasks: {
t1: {
id: 'foo'
}
}
}
}
const positions = {
[modules.module1.tasks.t1.id]: { modifier: 1 },
}; // evaluates to { foo: { modifier: 1 } }