Чтения, например, из typescript manual:пример наследования от машинописи ручного
class Animal {
name:string;
constructor(theName: string) { this.name = theName; }
move(meters: number = 0) {
alert(this.name + " moved " + meters + "m.");
}
}
class Snake extends Animal {
constructor(name: string) { super(name); }
move(meters = 5) {
alert("Slithering...");
super.move(meters);
}
}
class Horse extends Animal {
constructor(name: string) { super(name); }
move(meters = 45) {
alert("Galloping...");
super.move(meters);
}
}
var sam = new Snake("Sammy the Python");
var tom: Animal = new Horse("Tommy the Palomino");
sam.move();
tom.move(34);
Речь идет о линии var tom: Animal = new Horse("Tommy the Palomino");
:
Как я понимаю
tom
являетсяAnimal
со свойствамиHorse
. Это правильно?Какой смысл делать это таким образом? Не объявлять как
var tom: Horse = ...
?Имея только одну версию, чтобы дать ему возможность разлагаться/меняться/развиваться до
Snake
или любого другогоAnimal
. Я прав?... или, может быть, это только опечатка?