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