-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Closed
Labels
DuplicateAn existing issue was already createdAn existing issue was already created
Description
Search Terms
type inference narrowing literal array tuple
Suggestion
It would be convenient if TypeScript could narrow the type of an item in a tuple, with literal numeric index, especially when the tuple can contain null items.
Use Cases
For fixed length tuples, we often access each item with a literal numeric index.
When an item of such a tuple is null, TypeScript seems not to be able to narrow the item's type after a null check.
Examples
let period: [Date, Date | null] = [new Date(), null];
let dateEndStr = [period[1] ? period[1].toISOString() : null]; // Error: object period can be nullChecklist
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. new expression-level syntax)
Metadata
Metadata
Assignees
Labels
DuplicateAn existing issue was already createdAn existing issue was already created