microsoft / microsoft/TypeScript

`export as namespace` still allows access via properties in module files

Offen
#36,313 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Domain: ES Modules
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

TypeScript Version: 3.8.0-dev.20200119

Search Terms: export as namespace

Code

someModule.d.ts:

export function foo (bar: string): void;
export as namespace someModule;

index.ts:

import { foo } from './someModule';

someModule.foo;
window.someModule.foo;
globalThis.someModule.foo;

Expected behavior:

All of the attempts to access someModule as a global namespace in index.ts should result in compile-time errors, as index.ts is not a script file.

Actual behavior:

window.someModule.foo and globalThis.someModule.foo do NOT result in compile-time errors.

Playground Link: N/A (requires multiple files)

Related Issues: None found

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere das Problem mit den beiden gezeigten Dateien, someModule.d.ts und index.ts, unter Verwendung der gemeldeten TypeScript-Version oder eines aktuellen Builds. Vergleiche die Diagnosen für den direkten Zugriff sowie den Zugriff über window und globalThis und verfolge anschließend die Verarbeitung von export as namespace durch den Compiler. Als abgeschlossen gilt die Aufgabe, wenn alle drei Zugriffe auf den globalen Namespace in der Moduldatei Compile-Time-Fehler erzeugen.

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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.