narrow array type with .filter(Boolean)
#30621
Labels
Duplicate
An existing issue was already created
.filter(Boolean)
#30621
Search Terms
narrow, array, filter
Suggestion
add this overload to
Array<T>.filter
:This may be considered too specific - but the use case is very common so hopefully worth it.
Use Cases
This will allow using
array.filter(Boolean)
to get rid of null/undefined/falsy values, and have the type system track it correctly even withstrictNullChecks
.Right now the options are to use
lodash.compact
or write a similar function (not ideal to add a dependency), or to use!
(myArray.filter(Boolean).map(val => val!.foo(...))
) which is a little dangerous.Examples
Example
definitelyStrings
is of type(string | null)[]
even though it's impossible fornull
s to be in it.current behaviour:

proposed behaviour:

Checklist
My suggestion meets these guidelines:
The text was updated successfully, but these errors were encountered: