Microsoft/TypeScript
typeof Foo['bar'] has strange precedence
Aberta
#19.707 aberto em 3 de nov. de 2017
Effort: ModerateExperimentation NeededHelp WantedRevisitSuggestion
Métricas do repositório
- Stars
- (108.860 estrelas)
- Métricas de merge de PR
- (Métricas PR pendentes)
Description
Type queries combined with indexed access types currently produce a parse tree that is surprising in its behavior.
One would think that typeof Foo['bar'] would be parsed as typeof (Foo['bar']), which would really be something like typeof Foo.bar.
That's not the case. It's actually parsed as (typeof Foo)['bar'].
Conveniently, it seems that semantically (when type-checking) these are identical, but it seems strange for syntactic consumers. Do we believe this is currently working as intended?