microsoft / microsoft/TypeScript
TS2377 reported for constructors that unconditionally throw or use return override
Offen
Dieses Issue hat noch niemand übernommen.
Awaiting More Feedback
Suggestion
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.3k
- Ø Merge
- 2 T. 4 Std.
- Gemergte PRs (30 T.)
- 132
Beschreibung
TypeScript Version:
3.7.0-dev.2019-10-10
Search Terms:
- TS2377
- TS 2377
- TS2377 throw
- TS 2377 throw
Code
Code like this is also generated by webidl2js:
class Foo extends Object {
constructor () {
throw new TypeError("Illegal constructor");
}
}
Same with
class Foo extends Object {
constructor () {
return Object.create(new.target.prototype);
}
}
Expected behavior:
No error
Actual behavior:
error TS2377: Constructors for derived classes must contain a 'super' call.
2 constructor() {
~~~~~~~~~~~~~~~
3 throw new TypeError();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 }
~~~~~
and
error TS2377: Constructors for derived classes must contain a 'super' call.
2 constructor() {
~~~~~~~~~~~~~~~
3 return Object.create(new.target.prototype);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 }
~~~~~
Playground Link:
Related Issues:
- #3696
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 mit den beiden Konstruktorbeispielen und dem verknüpften Playground, um TS2377 zu reproduzieren, und lies anschließend das verwandte Issue #3696, um den Kontext zu verstehen. Die Korrektur ist vollständig, wenn abgeleitete Konstruktoren, die bedingungslos werfen oder ein override zurückgeben, TS2377 nicht mehr melden, während die bestehende Diagnose für Konstruktoren erhalten bleibt, die weiterhin einen Aufruf von super benötigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100