Как получить общий вывод типа с strictNullChecks для сопоставления с менее строгим типом? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть универсальная функция, которая принимает два аргумента, один из которых представляет собой сумму переменной типа, null и undefined, а другой - просто переменную типа.Typescript выводит переменную типа из второго аргумента.

Я уже знаю способы аннотирования вокруг этого - явная установка переменной типа с помощью <> или утверждение типа во втором аргументе.

Я подумываю о том, чтобы покопаться в условных типах, чтобы посмотреть, могут ли они отфильтровать, мне не ясно, могут ли они.1010 * - вместо этого я получаю "Тип" число "нельзя назначить типу" 0 | null | undefined '. ".

Аналогично со списком чего-то и пустым списком, я получаю, что что-то не являетсяприсваивается never.

1 Ответ

0 голосов
/ 18 февраля 2019

И я понял.

const or = <T, S extends T>(x: T|null|undefined, y:S>: T =>
    x === null || x == undefined ? y : x;

Я начал с более сложной вещи с условными типами, а затем понял, что могу перенести это предположение в дополнительный тип-параметр.

...