Сравнение типов TypeScript: методы и примеры

TypeScript, статически типизированная расширенная версия JavaScript, предоставляет мощные функции для проверки типов и вывода. Сравнение типов — обычная задача при разработке TypeScript, и для ее выполнения существует несколько методов. В этой статье мы рассмотрим несколько методов на примерах кода для сравнения типов в TypeScript.

Методы сравнения типов:

  1. Оператор typeof:
    Оператор typeofв TypeScript возвращает тип переменной во время выполнения. Он часто используется для сравнения примитивных типов, таких как строки, числа, логические значения или символы.
const value = 42;
if (typeof value === "number") {
  console.log("value is a number");
}
  1. Оператор экземпляра:
    Оператор instanceofпроверяет, является ли объект экземпляром определенного класса или функции-конструктора. Это полезно для сравнения типов объектов.
class MyClass {}
const obj = new MyClass();
if (obj instanceof MyClass) {
  console.log("obj is an instance of MyClass");
}
  1. Сравнение литеральных типов.
    Литеральные типы в TypeScript представляют определенные значения. Мы можем напрямую сравнивать типы литералов с помощью оператора ===.
type Color = "red" | "blue" | "green";
const color: Color = "red";
if (color === "red") {
  console.log("color is red");
}
  1. Сравнение типов объединения.
    Типы объединения позволяют переменной содержать несколько типов. Для сравнения типов объединения мы можем использовать ограничители типов, например typeofили instanceof.
type MyType = string | number | boolean;
const value: MyType = "Hello";
if (typeof value === "string") {
  console.log("value is a string");
}
  1. Утверждение типа:
    Утверждение типа — это способ сообщить компилятору о типе переменной, когда он не может быть выведен автоматически. Это полезно для сравнения сложных типов или при использовании сторонних библиотек.
const value: unknown = "Hello";
if ((value as string).length > 0) {
  console.log("value is a non-empty string");
}

TypeScript предоставляет несколько методов для сравнения типов, что позволяет разработчикам выполнять операции, специфичные для типов, и обеспечивать безопасность типов. Используя такие методы, как оператор typeof, оператор instanceof, сравнение литеральных типов, средства защиты типов объединения и утверждения типов, разработчики могут писать более надежный и безошибочный код.