Изучение оператора «instanceof» в TypeScript: подробное руководство

TypeScript, являющийся расширенной версией JavaScript, привносит в мир веб-разработки расширенную проверку типов и статическую типизацию. Одна из мощных функций TypeScript — это оператор «instanceof», который позволяет разработчикам выполнять проверки типов во время выполнения. В этой статье мы углубимся в оператор экземпляра и рассмотрим различные методы и примеры кода, позволяющие использовать его возможности.

Понимание оператора «instanceof».
Оператор «instanceof» используется для проверки принадлежности объекта определенному классу или функции-конструктору. Он возвращает логическое значение, указывающее, является ли объект экземпляром указанного класса или его потомком. Начнем с рассмотрения базового синтаксиса оператора «instanceof»:

object instanceof class

Метод 1: проверка экземпляра класса:
Самое простое использование оператора «instanceof» — проверить, является ли объект экземпляром определенного класса. Вот пример:

class Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
}
class Dog extends Animal {
  breed: string;
  constructor(name: string, breed: string) {
    super(name);
    this.breed = breed;
  }
}
const animal = new Animal("Leo");
const dog = new Dog("Max", "Labrador");
console.log(animal instanceof Animal); // Output: true
console.log(dog instanceof Animal); // Output: true
console.log(dog instanceof Dog); // Output: true
console.log(animal instanceof Dog); // Output: false

Метод 2. Проверка экземпляра встроенных типов.
Оператор «instanceof» также можно использовать для проверки принадлежности объекта к встроенному типу, например Array, Date и т. д. Вот пример. :

const arr = [1, 2, 3];
const date = new Date();
console.log(arr instanceof Array); // Output: true
console.log(date instanceof Date); // Output: true
console.log(arr instanceof Object); // Output: true
console.log(date instanceof Object); // Output: true

Метод 3. Проверка экземпляра пользовательских типов:
Помимо классов, оператор «instanceof» также может использоваться для проверки принадлежности объекта к пользовательскому типу, определенному с использованием интерфейсов или псевдонимов типов. Вот пример:

interface Person {
  name: string;
  age: number;
}
const person: Person = { name: "John", age: 25 };
console.log(person instanceof Object); // Output: true

Оператор «instanceof» в TypeScript предоставляет удобный способ проверки типов во время выполнения. Если вы хотите проверить, является ли объект экземпляром класса, встроенным типом или пользовательским типом, оператор «instanceof» может помочь вам в этом. Эффективно используя его, вы можете повысить надежность и типобезопасность вашей кодовой базы TypeScript.