Обычно используется шаблон Boolean
в массиве .filter(/* ... */)
для фильтрации ложных значений.
Можно ли в любом случае привести конструктор Boolean
к типу guard, который удаляет Nullables? Я пытаюсь сделать что-то вроде ниже:
const list = ['foo', 'bar', null];
// how can I make this line not error?
const onlyStrings: string[] = list.filter(Boolean as <T>(t: T) => t is NonNullable<T>);
Но я получаю следующую ошибку:
Conversion of type 'BooleanConstructor' to type '<T>(t: T) => t is NonNullable<T>' may be a mistake because neither type sufficiently overlaps with the other
Есть идеи?
Детская площадка Ссылка