Parser does not reject `await a as any ** 1`
See original GitHub issueTypeScript Version: 4.2.0-dev.20201201
Search Terms: exponentiation, await
Code
await a as any ** 1
Expected behavior: Parser should throw
An unary expression with the ‘await’ operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.
Actual behavior: Does not throw
Playground Link: https://www.typescriptlang.org/play?ts=4.2.0-dev.20201201#code/G4QwTgBCELwQCmA9gWwJYGcCmA6MWMkAbYLACgEYBKAbgCgQMBPAOwGMIyrYA+KAdxBoALlCgYoLJhABUMiBSA
Related Issues: https://github.com/microsoft/TypeScript/issues/40916, since in November meeting we have reached consensus that await x ** 1
is illegal and the parser already throws on await a! ** 1
, I think it should either throw for await a as any ** 1
, or add parenthesis in the output for await a
if as any
serves as an implicit parenthesis.
Issue Analytics
- State:
- Created 3 years ago
- Comments:8 (6 by maintainers)
Top GitHub Comments
😞✋ Fixing tricky parser bugs 😀👉 Having the spec change to match your behavior
@a-tarasyuk @jonhue Note that in TC39 November 2020 meeting we have reached consensus that
await x ** 1
is illegal, so current engines (except TS!) are not conforming to the spec.