microsoft / microsoft/TypeScript
Dead return statements in a generator should offer a did-you-mean-yield codefix
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
TypeScript Version: 3.0.0-dev.201xxxxx
Search Terms: yield return generator
Currently it is possible to have the following code:
Code
async function *myGeneratorFunction(): AsyncIterableIterator<number> {
return 1;
return 2;
return 3;
}
Expected behavior:
A generator function that yields numbers 1 - 3
Actual behavior:
No syntax/runtime error but due to a human mistake the generator function is useless.
I copy/pasted an existing generator function, deleted the body with the new implementation and mistakenly used return instead of yield.
It would be nice if TypeScript could warn when it's encountering a return with an actual value inside a generator function.
It makes no sense to return a value.
Could be combined with a codefix in the IDE: Did you mean yield?
Playground Link:
Related Issues:
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das async generator-Beispiel aus dem Issue zu reproduzieren, und untersuche die Behandlung von return-Anweisungen in Generatoren durch Compiler und language-service. Die Arbeit ist abgeschlossen, wenn ein wertbehaftetes return in einem Generator die beabsichtigte Warnung erzeugt und die IDE einen „Did you mean yield?“-Codefix anbietet, mit Abdeckung des Verhaltens des Beispiels.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100