Условный тип для функции generi c: тип не может быть назначен - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь ограничить тип возвращаемого значения обобщенной c функции. (Пример приведен для простоты, пожалуйста, игнорируйте фактическую «полезность» функции.) Я действительно запутался. В моем понимании MyReturnType<T> может разрешить только число или функцию . Как 100 не может быть назначено? Я что-то здесь не так понимаю? Что компилятор пытается мне сказать?

Я чувствую, что ответ может быть в документах для условных типов , но я не могу его найти (честно, некоторые части документов здесь пошел немного над моей головой). Может кто-нибудь объяснить мне, что происходит в этом фрагменте?


(TS 3.8.3)

1 Ответ

1 голос
/ 28 марта 2020

Похоже, ограничение компилятора для сужения типов для типов объединения:

Тип 'true' не может быть назначен типу 'T2 extends keyof T1? true: false '# 22735

...