microsoft / microsoft/TypeScript

TS2377 reported for constructors that unconditionally throw or use return override

Offen
#33,927 1 Kommentar 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

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

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

Neue Issues direkt in Ihr Postfach

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