Тип отказа Тип обещания - PullRequest
       4

Тип отказа Тип обещания

0 голосов
/ 28 апреля 2018

Как мне установить тип отказа от моего обещания? Допустим, я делаю:

const start = (): Promise<string> => {
   return new Promise((resolve, reject) => {
      if (someCondition) {
         resolve('correct!');
      } else {
         reject(-1);
      }
   });
}

Допустим, я хочу отклонить с номером. Но я не могу установить тип; Я могу передать все, что захочу, на reject здесь.

Более того, при использовании этого обещания возникает ошибка компиляции, если я неправильно использую тип ответа отклонения.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Исключение набирается любое, потому что мы не можем гарантировать правильное тип исключения во время разработки, и ни TypeScript, ни JavaScript предоставляет возможность охранять типы исключений во время выполнения. Лучший вариант - использовать средства защиты типов для проверки кода во время разработки и во время выполнения.

источник

0 голосов
/ 28 апреля 2018

Как объяснено в , эта проблема , Promise не имеет разных типов для выполненных и отклоненных обещаний. reject принимает any аргумент , который не влияет на тип обещания.

В настоящее время Promise не может быть напечатан лучше. Это объясняется тем фактом, что обещание можно отклонить, введя throw внутрь then или catch (это предпочтительный способ отклонить существующее обещание), и это не может быть обработано путем ввода system; кроме того, TypeScript также не имеет типов, специфичных для исключений, за исключением never.

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