Задать вопрос
@DarCKoder

Что даёт нам этот участок кода?

class Animal {
    name: string;
    constructor(theName: string) { this.name = theName; }
    move(distanceInMeters: number = 0) {
        console.log(`${this.name} moved ${distanceInMeters}m.`);
    }
}
 
class Snake extends Animal {
    constructor(name: string) { super(name); }
    move(distanceInMeters = 5) {
        console.log("Slithering...");
        super.move(distanceInMeters);
    }
}
 
class Horse extends Animal {
    constructor(name: string) { super(name); }
    move(distanceInMeters = 45) {
        console.log("Galloping...");
        super.move(distanceInMeters);
    }
}
 
let sam = new Snake("Sammy the Python");
let tom: Animal = new Horse("Tommy the Palomino");
 
sam.move();
tom.move(34);


Интересует строка:
let tom: Animal = new Horse("Tommy the Palomino");
tom:Animal что это может нам дать?
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
GTRxShock
@GTRxShock
SA
Тут вы явно указываете суперкласс.
Причем вы не привязываетесь к конкретной реализации, а используете своего рода интерфейс. Чтобы потом можно было проверить объект на вхождение в множество Animal

https://learn.javascript.ru/instanceof

Далее по коду вы сможете делать проверки является ли объект животным, а-ля:
if (tom instanceof Animal) { //do..(покормить/воды налить/спать уложить и тд }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы