microsoft / microsoft/TypeScript
"export = { }" vs "let a = { }; export = a", causes discrepancy in import behavior
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.3k
- Merge medio
- 2g 4h
- PR unite (30g)
- 132
Descrizione
TypeScript Version: 3.9.5
Search Terms: I searched import related bug labels
Code
//module a
export = {
name: 'zzxoto'
};
//module b
const EX = { name: 'zzxoto' };
export = EX;
//////////////////////////////////////////////////////////////////
//when importing a
//this gives error:
//This module can only be referenced with ECMAScript imports/exports by turning on the 'esModuleInterop' flag and referencing its default export.ts(2497)
import { name } from './a';
//this works
import A from './a';
A.name;
//////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
//when importing b
//this works
import { name } from './b';
//this works too
import B from './b';
B.name
//////////////////////////////////////////////////////////////////
//tsconfig.json
{
"compilerOptions": {
"target": "ES2019",
"module": "commonjs",
"strict": false,
"strictNullChecks": true,
"allowJs": false,
"esModuleInterop": true
},
"include": ["**/*.ts"]
}
Expected behavior:
There should be no descrepancy while import module a vs module b.
Actual behavior:
Described above.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci la discrepanza usando i moduli a e b del report con TypeScript 3.9.5 e il tsconfig.json fornito. Confronta gli import denominati e gli import predefiniti con esModuleInterop, quindi verifica che forme di esportazione equivalenti producano un comportamento di import coerente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 45/100