Рассмотрим следующий пример:
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>
, который мне нужен? Я предпочитаю не использовать какие-либо утверждения типа, которые, как мне кажется, могут сделать этот код подверженным ошибкам.