Search Terms
dot notation, index type
Suggestion
Enable accessing object property type in the type domain, when possible
type Obj = {
x: number;
y: number;
}
type X = Obj['x'];
// This would be an error, but it's a much more concise/intuitive syntax
type X2 = Obj.x;
Note this is not the same as #12596, which is a breaking change.
I'm only suggesting allowing Obj.propertyName to be a type,
or as an alias of Obj['propertyName'].
propertyName must have been known to the compiler, as in the old index type.
One possible drawback is it might cause confusion with accessing objects,
but not that much since when reading TS code, people tend to first look
at which part is the typing and which part is the runtime.
Use Cases
This applies to all cases where index type is used without mapped types.
It would improve the readability and reduce a lot of syntax noise.
Examples
Shamelessly copied the code from #17588, and image how this code will look better
with the new syntax :)
CODE
Checklist
My suggestion meets these guidelines:
Search Terms
dot notation, index type
Suggestion
Enable accessing object property type in the type domain, when possible
Note this is not the same as #12596, which is a breaking change.
I'm only suggesting allowing
Obj.propertyNameto be a type,or as an alias of
Obj['propertyName'].propertyNamemust have been known to the compiler, as in the old index type.One possible drawback is it might cause confusion with accessing objects,
but not that much since when reading TS code, people tend to first look
at which part is the typing and which part is the runtime.
Use Cases
This applies to all cases where index type is used without mapped types.
It would improve the readability and reduce a lot of syntax noise.
Examples
Shamelessly copied the code from #17588, and image how this code will look better
with the new syntax :)
CODE
Checklist
My suggestion meets these guidelines: