microsoft / microsoft/TypeScript

`esModuleInterop` breaks circular imports

Aperta
#33,012 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Domain: ES Modules
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
2g 4h
PR unite (30g)
132

Descrizione

TypeScript Version: 3.5.2

Search Terms:

Code

./tsconfig.json:

{
    "compilerOptions": {
        "esModuleInterop": true
    },
    "files": ["./src/main.ts"]
}

./src/main.ts

import { other } from './other';

console.log(other.foo1);

./src/other.ts

export const foo1 = 1;
export const foo2 = 2;

// Import *this* module as a namespace
// Unexpected error:
// Circular definition of import alias 'other'
import * as other from './other';

// Re-export the namespace as a named export
export { other };

(For context on why you might do this: it allows you to give namespace imports a common name.)

Expected behavior:

No error

Actual behavior:

Error (see code comment)

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci la diagnostica con ./tsconfig.json, src/main.ts e src/other.ts usando TypeScript 3.5.2 o la versione attuale pertinente. Inizia tracciando il controllo degli alias di importazione circolare per l’importazione dello spazio dei nomi in src/other.ts; il lavoro è completato quando l’esempio viene compilato senza l’errore segnalato, preservando il comportamento previsto di importazione e riesportazione.

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
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.