Closed
Description
Suggestion
Add an overload to Boolean
defintion
interface BooleanConstructor {
new(value?: any): Boolean;
- <T>(value?: T): boolean;
+ <T>(value?: T): value is Exclude<T, false | null | undefined | 0 | ''>
readonly prototype: Boolean;
}
Use Cases
Array.filter
declare const actions: Array<(() => void) | null | undefined>
actions.filter(Boolean).forEach(act => act())
Checklist
My suggestion meets these guidelines:
- This wouldn't be a breaking change in existing TypeScript/JavaScript code
- 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.)
- This feature would agree with the rest of TypeScript's Design Goals.