microsoft / microsoft/TypeScript

Named imports should respect Record<string, any> types

Offen
#35,827 0 Kommentare 2 Reaktionen 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
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

TypeScript Version: 3.7.x-dev.201xxxxx

Search Terms: dynamic named imports, commonjs named imports

Code

declare module '*.wasm' {
  type WasmProxy = Record<string, (...args: any[]) => Promise<any>>;
  const wasmProxy: WasmProxy;
  export = wasmProxy;
}

Expected behaviour:

I would expect typescript to allow any named import such as:

import {anything, hello, hola } from './program.wasm';

Since the exported namespace is a Record, where any string is valid.

Actual behavior:

The following code does NOT work:

// Does not work
import {anything, hello, hola } from './program.wasm';

Using the wildcard import works:

// Does work
import * as ns from './program.wasm';
ns.anything;
ns.hello;
ns.hola;

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

Beginne mit dem bereitgestellten TypeScript-Reproduzierer für ein Wildcard-Modul, das Record<string, (...args: any[]) => Promise> exportiert, und vergleiche die Prüfung benannter Importe mit dem Zugriff über den Namespace. Als abgeschlossen gilt die Aufgabe, wenn beliebige benannte Importe wie anything, hello und hola für das deklarierte .wasm-Modul akzeptiert werden, während das bestehende Wildcard-Verhalten gültig bleibt.

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

Neue Issues direkt in Ihr Postfach

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