microsoft / microsoft/TypeScript
[V6] `module` defaults is not `esnext`
@DanielRosenwasser y travaille déjà.
Depuis le 1/4/2026.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
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.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Évaluation
Cette issue n'a pas encore été évaluée.