Посмотрите пример наследования с игровой площадки на сайте TypeScript:
class Animal {
public name;
constructor(name) {
this.name = name;
}
move(meters) {
alert(this.name + " moved " + meters + "m.");
}
}
class Snake extends Animal {
constructor(name) { super(name); }
move() {
alert("Slithering...");
super.move(5);
}
}
class Horse extends Animal {
constructor( name) { super(name); }
move() {
alert(super.name + " is Galloping...");
super.move(45);
}
}
var sam = new Snake("Sammy the Python")
var tom: Animal = new Horse("Tommy the Palomino")
sam.move()
tom.move(34)
Я изменил одну строку кода: предупреждение в Horse.move()
. Там я хочу получить доступ к super.name
, но это возвращает просто undefined
. IntelliSense предлагает, чтобы я мог использовать его, и TypeScript компилируется нормально, но это не работает.
Есть идеи?