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
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
🔎 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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem verknüpften TypeScript Playground und dem Beispiel mit den minimalen Imports/Interfaces und vergleiche dann die ESNext- und AMD-Ausgaben mit dem berichteten Verhalten. Erledigt ist die Aufgabe, wenn Imports, die nur in Interface-Schlüsseln verwendet werden, entfernt werden und dadurch export {} für ESNext sowie ein AMD-Modul entstehen, das nur require und exports enthält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100