-
Notifications
You must be signed in to change notification settings - Fork 13.3k
[V6] module defaults is not esnextΒ #63330
Copy link
Copy link
Open
Labels
DocsThe issue relates to how you learn TypeScriptThe issue relates to how you learn TypeScript
Description
π Search Terms
"module", "default", "esnext", "v6"
π Version & Regression Information
This changed between versions V5 and V6
β― Playground Link
This isn't an issue in Playground, because you're required to enter a value for the module.
π» Code
-
package.json{ "name": "testcase", "version": "1.0.0", "type": "module", "dependencies": { "typescript": "6.0.2" } } -
index.tsimport foo from "./foo.json" with { type: "json" }; console.log(foo);
npm installnpc tsc index.ts
π Actual behavior
index.ts:1:30 - error TS2823: Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.
1 import foo from "./foo.json" with { type: "json" };
~~~~~~~~~~~~~~~~~~~~~
π Expected behavior
No error because module defaults to esnext.
Additional information about the issue
In Announcing TypeScript 6.0, it says module defaults to esnext: Similarly, the new default module is esnext, acknowledging that ESM is now the dominant module format.
But in TSConfig Reference, it's CommonJS if target is ES5; ES6/ES2015 otherwise.
In the code, I don't think the default value is esnext. Otherwise, we wouldn't be getting the TS2823 error.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
DocsThe issue relates to how you learn TypeScriptThe issue relates to how you learn TypeScript