Как указать тип объекта в вызове функции - PullRequest
0 голосов
/ 21 апреля 2020

Если я вызываю функцию, которая принимает any, как мне указать тип литерала объекта, который передается напрямую (без создания локальной переменной). Это не работает:

      aMessageChannel.port1.postMessage({
        foo: 1,
        bar: 2,
      }: MyMessageType);

1 Ответ

0 голосов
/ 21 апреля 2020

Я не уверен, зачем вам нужно указывать тип объекта в том месте, где он вызывается, вы обычно делаете это в определении функции.

В случае, когда вы вызываете внешний функция, которая принимает any - и поскольку это чужой код, вы не можете изменить сигнатуру функции - вы можете сначала определить свой объект с помощью объявления типа, а затем передать его в функцию.

// if obj does not have the right shape to be a MyMessageType then the error will display here
const obj: MyMessageType = {
  foo: 1,
  bar: 2,
}

aMessageChannel.port1.postMessage(obj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...