microsoft / microsoft/TypeScript

Cannot import javascript class in `index.d.ts` when using `jsconfig.json`

Offen
#42,221 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Needs Investigation
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
132

Beschreibung

Bug Report

🔎 Search Terms

JSDoc, javascript, import, index.d.ts, jsconfig

🕗 Version & Regression Information

v4.1.2

⏯ Playground Link

Requires multiple files ( https://github.com/optoolco/components/blob/master/index.d.ts )

💻 Code
// index.d.ts

import * as toaster from "./toaster"

declare global {
  interface HTMLElementTagNameMap {
    "tonic-toaster": toaster.TonicToaster;
  }
}
🙁 Actual behavior

Expected toaster.TonicToaster to exist and for document.querySelector('tonic-toaster') to work.

🙂 Expected behavior

toaster.TonicToaster is any, however when subclasses it, it works as expected

// index.d.ts

import * as toaster from "./toaster"
class CTonicToaster extends toaster.TonicToaster {}

declare global {
  interface HTMLElementTagNameMap {
    "tonic-toaster": CTonicToaster;
  }
}

The goal here is for const t = document.querySelector('tonic-toaster') to work. When subclassing in the index.d.ts it works as expected including intellisense and go to definition for methods like toaster.create({})

When using "tonic-toaster": toaster.TonicToaster the querySelector("tonic-toaster") returns type any instead.

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 damit, das Problem mit den mehreren Dateien im verknüpften Beispiel zu reproduzieren: index.d.ts, ./toaster und jsconfig.json. Vergleiche die direkte toaster.TonicToaster-Zuordnung mit dem Workaround über die Unterklasse und überprüfe anschließend, ob document.querySelector("tonic-toaster") bei behobenem Problem den erwarteten Typ und das erwartete IntelliSense-Verhalten aufweist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, 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.