hero: Hero = {
id: 1,
name: 'Windstorm'
};
В приведенном выше коде вы только объявляете тип свойства героя как Hero
, но вы назначаете литерал объекта.Это должно быть hero: Hero = new Hero()
, тогда только свойство this.hero instanceOf Hero
вернет true
.
Объяснение:
JavaScript - это язык на основе прототипов.Базовый класс для всех других классов, включая String, Array, равен Object
.Итак, в вашем случае вы создаете объект, используя литерал объекта {}
.Typescript не показывает никакой ошибки, потому что класс Hero
также расширяется от Object
.