Ответ
instanceof
в TypeScript — это оператор, проверяющий, является ли объект экземпляром определенного класса или конструктора. Он работает с прототипной цепочкой объекта.
class Animal {}
class Dog extends Animal {}
const dog = new Dog();
console.log(dog instanceof Dog); // true
console.log(dog instanceof Animal); // true (наследование)
console.log(dog instanceof Object); // true (все объекты наследуют от Object)
Особенности:
- Работает только с классами и функциями-конструкторами
- Не работает с интерфейсами TypeScript (они существуют только на этапе компиляции)
- Может давать ложные результаты при работе с
Symbol.hasInstance
или между разными фреймами/окнами браузера