TypeScript не распознает объединение типа unknown и типа Promise <unknown> - PullRequest
1 голос
/ 08 мая 2020

Рассмотрим следующий пример:

type ExampleOne = Promise<string> | string;
// Inferred type: `string | Promise<string>`.

TypeScript выводит тип ExampleOne как string | Promise<string>, что верно.

Но когда я меняю string на unknown ...:

type ExampleTwo = Promise<unknown> | unknown;
// Inferred type: `unknown`.
// Shouldn't be `unknown | Promise<unknown>`?

TypeScript теперь выводит только Example Two от unknown, что я считаю неверным. Не должно быть unknown | Promise<unknown>, как в первом примере?

Я создал образец на игровой площадке TypeScript , чтобы продемонстрировать это поведение.

вопрос: Как я могу сделать вывод TypeScript ExampleTwo как unknown | Promise<unknown>, который мне нужен? Я предпочитаю не использовать какие-либо утверждения типа, которые, как мне кажется, могут сделать этот код подверженным ошибкам.

...