You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A common idiom in JavaScript is to filter an array using Boolean as a filter function to remove falsy values. To make this useful in TypeScript, Boolean should act as a type guard:
+type Falsy = false | 0 | '' | null | undefined;
interface BooleanConstructor {
new (value?: any): Boolean;
- (value?: any): boolean;+ <A>(value: A | Falsy): x is A;
readonly prototype: Boolean;
}
Examples
// The type of `numbers` should be `number[]` but currently it is `(number | undefined)[]`.constnumbers=[1,2,undefined,3].filter(Boolean);
Checklist
My suggestion meets these guidelines:
This wouldn't be a breaking change in existing TypeScript/JavaScript code (I think this is true?)
This wouldn't change the runtime behavior of existing JavaScript code
This could be implemented without emitting different JS based on the types of the expressions
This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
Activity
DanielRosenwasser commentedon Apr 29, 2019
Related to #24063.
DanielRosenwasser commentedon Apr 29, 2019
And related to #16655.
jack-williams commentedon Apr 29, 2019
Think this is implemented by #29955