microsoft / microsoft/TypeScript

__importStar sometimes inlined when using dynamic imports with --importHelpers

Aperta
#27,415 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Bug Domain: tslib and Helper Functions
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
2g 4h
PR unite (30g)
132

Descrizione

TypeScript Version: 3.1.1

Search Terms: __importStar tslib

Code
a.ts:

import('b').then(b => console.log(b));

compile with

tsc a.ts --esModuleInterop --importHelpers

Expected behavior:
some type errors, but emitted code should require("tslib") and use __importStar from there

Actual behavior:
some type errors and generated code looks like this:

var __importStar = (this && this.__importStar) || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    result["default"] = mod;
    return result;
};
Promise.resolve().then(function () { return __importStar(require('b')); }).then(function (b) { return console.log(b); });

btw an example that works correctly:

import('c').then(b => console.log(b));

class Foo {}

export class Bar extends Foo {}

both the extends and the export seem to be necessary

Playground Link: N/A (--esModuleInterop doesn't exist in the playground)

Related Issues: This is basically #21560 but replacing regular imports with dynamic imports

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 il report con a.ts usando tsc 3.1.1, --esModuleInterop e --importHelpers, quindi esamina il codice emesso per l’importazione dinamica. Traccia come viene selezionato __importStar per l’importazione basata su Promise e confrontalo con l’esempio funzionante che include extends e export. Il lavoro è terminato quando il caso che fallisce richiede tslib e usa il relativo helper __importStar invece di inserirlo inline.

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.