microsoft / microsoft/TypeScript

Incorrect TS1111 when using private generator function in JS

Aperta
#64,228 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Needs More Info
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
2g 4h
PR unite (30g)
132

Descrizione

### 🔎 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

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Non sono specificati file sorgente né test. Inizia riproducendo la diagnostica TS1111 dall'esempio private-generator fornito in VSCode 1.135.0, quindi traccia il controllo dei campi privati del compilatore per la chiamata `child.#iterate()`. Il lavoro è concluso quando l'esempio non produce errori e un test di regressione copre l'accesso valido.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, typescript
Ambito
compilers
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.