[]: {} синтаксис в TypeScript - PullRequest
0 голосов
/ 09 июля 2020

У меня следующий исходный код:

const positions = {
  [modules.module1.tasks.t1.id]: { modifier: 1 },
};

Кто-нибудь может объяснить или связать с документацией, что сделано выше?

1 Ответ

3 голосов
/ 09 июля 2020

В вашем примере кода нет ничего специфичного 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 } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...