Unexpected "used before its declaration" error when implementing a exported type of a merged namespace

Offen
#54,429 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
52/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
typescript
Bereich
compilers

Rechercherichtung

Beginne mit dem bereitgestellten TypeScript-Beispiel und dem Playground-Link und vergleiche dann die Editordiagnose mit dem Verhalten des Playgrounds für den zusammengeführten Namespace und den exportierten Typ. Verfolge den Pfad der Typprüfung, der die Fehler "used before its declaration" und "used before being assigned" meldet, und füge einen Regressionstest hinzu, der zeigt, dass dieser Code keinen Fehler erzeugt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Bug Domain: Binder Help Wanted Needs Human Review Needs More Info

Bug Report

🔎 Search Terms

used before its declaration vscode

🕗 Version & Regression Information
  • tested in 4.7.3, 5.0.4 and nightly
⏯ Playground Link

Playground link with relevant code

💻 Code
namespace Foo {
    export interface Bar { }
}

class X implements Foo.Bar {

}

const Foo = 1;
🙁 Actual behavior

In VSCode it reports:

namespace Foo
Block-scoped variable 'Foo' used before its declaration.ts(2448)
Untitled-1(9, 7): 'Foo' is declared here.
Variable 'Foo' is used before being assigned.ts(2454)

You may not see the error immediately if you paste the code into a new file. It will appear when you start typing something.

Note that the error cannot be reproduced in the playground.

🙂 Expected behavior

No error.

Vorherrschende Sprache
Go
Sterne
111k
Forks
14.4k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/TypeScript

Alle Issues in microsoft/TypeScript

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

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