5 простых способов проверить, является ли переменная строкой в ​​TypeScript

При работе с TypeScript важно обеспечить типобезопасность переменных. В этой статье мы рассмотрим различные методы проверки того, является ли переменная строкой. Мы предоставим простые для понимания примеры кода и объясним каждый метод простыми разговорными словами. К концу вы получите четкое представление о различных подходах к проверке строковых переменных в TypeScript.

Метод 1: оператор typeof
Оператор typeof позволяет нам определить тип переменной. Чтобы проверить, является ли переменная строкой, мы можем использовать оператор typeof и сравнить ее со строковым литералом “string”.

function isString(value: any): boolean {
  return typeof value === "string";
}
console.log(isString("Hello")); // true
console.log(isString(42)); // false

Метод 2: оператор экземпляра
Оператор экземпляра используется для проверки того, является ли объект экземпляром определенного класса. В TypeScript строки являются экземплярами класса String. Следовательно, мы можем использовать оператор экземпляра для проверки того, является ли переменная строкой.

function isString(value: any): boolean {
  return value instanceof String;
}
console.log(isString("Hello")); // true
console.log(isString(42)); // false

Метод 3: typeof со строгим равенством
Хотя оператор typeof можно использовать для проверки того, является ли переменная строкой, он не является надежным. Он возвращает «объект» для строковых объектов. Чтобы преодолеть это ограничение, мы можем использовать оператор строгого равенства (===), чтобы гарантировать, что результатом typeof будет именно «строка».

function isString(value: any): boolean {
  return typeof value === "string" || value instanceof String;
}
console.log(isString("Hello")); // true
console.log(isString(new String("Hello"))); // true
console.log(isString(42)); // false

Метод 4: typeof с сопоставлением с образцом
Иногда полезно выполнить более конкретные проверки строк, например определить, содержит ли переменная только буквы или цифры. Мы можем добиться этого, используя регулярные выражения в сочетании с оператором typeof.

function isAlphabeticString(value: any): boolean {
  return typeof value === "string" && /^[A-Za-z]+$/.test(value);
}
console.log(isAlphabeticString("Hello")); // true
console.log(isAlphabeticString("Hello123")); // false

Метод 5: метод toString
Все объекты JavaScript имеют метод toString, который возвращает строковое представление объекта. Мы можем использовать этот метод, чтобы проверить, является ли переменная строкой, вызвав toString и сравнив результат со строкой «[object String]».

function isString(value: any): boolean {
  return Object.prototype.toString.call(value) === "[object String]";
}
console.log(isString("Hello")); // true
console.log(isString(new String("Hello"))); // true
console.log(isString(42)); // false

В этой статье мы рассмотрели пять простых способов проверить, является ли переменная строкой в ​​TypeScript. Для достижения нашей цели мы использовали оператор typeof, оператор экземпляра, строгое равенство, сопоставление с образцом и метод toString. Используя эти методы, вы можете обеспечить безопасность типов ваших переменных и написать более надежный код TypeScript.