π Search Terms
named object property tuple type lookup
β
Viability Checklist
β Suggestion
Developers sometimes accidentally use [] to declare a type instead of {}. Later, when they try to access a property by string name, the error message doesn't indicate that it's a [] tuple instead of {} object. Can we get a specific error message for that example?
π Motivating Example
The following Label type alias seems to describe a reasonable tuple at first. But later on we see that the developer might have meant to describe an object type.
type Label = [
text: string;
];
declare const label: Label;
label.text;
// Property 'text' does not exist on type 'Label'.
How about a specialized diagnostic indicating 'Label' is a tuple?
Property 'text' does not exist on type 'Label'.
'Label' is a tuple type with numeric keys, not an object type with string keys.
...bikeshedding needed on that message π€
π» Use Cases
- When a developer meant to write an object type but used a tuple instead
- When a developer misread a tuple type as an object type
- When a developer is new to tuples and/or types, and confused the two's syntaxes
Example real-world developer pain point (posted with permission): https://twitter.com/yagiznizipli/status/1736762337716039967
π Search Terms
named object property tuple type lookup
β Viability Checklist
β Suggestion
Developers sometimes accidentally use
[]to declare a type instead of{}. Later, when they try to access a property by string name, the error message doesn't indicate that it's a[]tuple instead of{}object. Can we get a specific error message for that example?π Motivating Example
The following
Labeltype alias seems to describe a reasonable tuple at first. But later on we see that the developer might have meant to describe an object type.How about a specialized diagnostic indicating
'Label'is a tuple?...bikeshedding needed on that message π€
π» Use Cases
Example real-world developer pain point (posted with permission): https://twitter.com/yagiznizipli/status/1736762337716039967