ich dieses Stück Code in TS Spielplatz versucht und kam in dieser seltsamen Sacheneue Eigenschaft kann nicht in abgeleiteten Klasse Konstruktor instanziiert wird
class Animal {
constructor(public name: string) {
this.name = name;
}
}
class Snake extends Animal {
constructor(name: string, isPoisonous: boolean) {
super(name);
this.isPoisonous= isPoisonous;
}
}
Sobald ich die isPoisonous
Eigenschaft in Snake
Konstruktor eingeführt TS brüllt Ich sage 'Property 'isPoisonous' does not exist on type 'Snake''
. Interessanterweise ist das Gleiche in ES6 in Ordnung.
Sie verpassen die Zugriffsebene, die 'isPoisonous' einen Parameter Eigenschaft machen würde, oder die separate Definition der Eigenschaft, die es Ihnen erlauben würde, es wegzulassen. – jonrsharpe
@jonrsharpe Punkt! Bedeutet das, dass TS einen Zugriffsspezifizierer benötigt, während er eine Prop in ctor instanziiert, ohne sie zu deklarieren? – izengod
Es braucht eine Definition, um die Zuweisung zu erlauben, entweder eine Parametereigenschaft (in diesem Fall ist die direkte Zuweisung sowieso redundant; Ihr Animal-Konstruktor hat eine sinnlose Zeile) oder die reguläre Art. – jonrsharpe