Improve non-top-level import/export error, especially for JS #47076
Labels
Bug
A bug in TypeScript
Domain: Error Messages
The issue relates to error messaging
Fixed
A PR has been merged for this issue
Good First Issue
Well scoped, documented and has the green light
Help Wanted
You can do this
Milestone
ES imports and exports can only be used at the top level of a module. This is illegal:
The current errors for these three statements are vague and, for JS, contain irrelevant terms:
Actual:
(1) "An import declaration can only be used in a namespace or module."
(2) "An export declaration can only be used in a module."
(3) "A namespace declaration is only allowed in a namespace or module."
Expected:
(1) When the node is in a JS file, "An import declaration can only be used at the top level of a module."
Otherwise, "An import declaration can only be used at the top level of a namespace or module."
(2) When the node is in a JS file, "An export declaration can only be used at the top level of a module."
Otherwise, "An export declaration can only be used at the top level of a namespace or module."
(3) "A namespace declaration is only allowed at the top level of a module."
Implementation:
checkGrammarModuleElementContextissues these errors. I don't know whether it's better to make it smarter or just avoid calling it for case (1).The text was updated successfully, but these errors were encountered: