microsoft / microsoft/TypeScript
Import ellision emit bug: usage of imports only in keys of interfaces does not result in those imports being elided as type-only
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.4k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
🔎 Search Terms
import ellision emit
🕗 Version & Regression Information
- This is the behavior in every version I tried - I saw it in typescript 4.9 and in the playground in typescript 5.4.3.
⏯ Playground Link
💻 Code
import {BAR} from 'bar';
import * as foo from 'foo';
export interface RootState {
[BAR]: string;
[foo.bar]: string;
}
🙁 Actual behavior
When compiled to ESNext module:
import { BAR } from 'bar';
import * as foo from 'foo';
when compiled to AMD with importHelpers it's interesting that __importStar appears
define(["require", "exports", "tslib", "bar", "foo"], function (require, exports, tslib_1, bar_1, foo) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
foo = tslib_1.__importStar(foo);
});
🙂 Expected behavior
output should be an entirely empty module, e.g. AMD should be
define(["require", "exports"], function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
});
ESNext should be
export {}
Additional information about the issue
No response
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
Inizia con il TypeScript Playground collegato e l'esempio minimo di imports/interfaces, quindi confronta gli output ESNext e AMD con il comportamento segnalato. Il lavoro è completato quando gli imports usati solo nelle chiavi delle interfacce vengono omessi, producendo export {} per ESNext e un modulo AMD contenente solo require e exports.
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
- Abbastanza chiara
- Idoneità per principianti
- 48/100