microsoft / microsoft/TypeScript

Incorrect TS1111 when using private generator function in JS

Offen
#64,228 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

### 🔎 Search Terms

An error TS1111 is raised when (properly) using a private generator function. I'm using VSCode, and it will report `Private field '#iterate' must be declared in an enclosing class.` when calling `child.#iterate()`.

### 🕗 Version & Regression Information

- I'm hitting this in VSCode 1.135.0

### 💻 Code

```js
class Foo {
*iterate() {
yield* this.#iterate()
}

*#iterate() {
const child = this.child
if (child instanceof this.constructor) {
yield* child.#iterate()
}
}
}

let f = new Foo()
for (const i of f.iterate()) {

}
```

### 🙁 Actual behavior

An error TS1111 is raised.

### 🙂 Expected behavior

There should be no error.

### Additional information about the issue

1. The error disappears if I call `this.#iterate()`, but of course that's not the point.
2. I can also clear the error by adding `assert(#iterate in child)` before the call

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

Keine Quelldatei oder kein Test ist angegeben. Beginne damit, die TS1111-Diagnose aus dem bereitgestellten private-generator-Beispiel in VSCode 1.135.0 zu reproduzieren, und verfolge dann die Prüfung privater Felder des Compilers für den Aufruf `child.#iterate()`. Fertig ist die Arbeit, wenn das Beispiel keinen Fehler erzeugt und ein Regressionstest den gültigen Zugriff abdeckt.

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
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

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