TypeGuard (охранник типа) - это механизм, который позволяет проверять типы значений во время выполнения программы и обеспечивает безопасность типов в TypeScript.
TypeGuard позволяет определять функции, которые могут проверять типы значений и возвращать булевое значение, указывающее, соответствует ли значение определенному типу. Если функция возвращает true, TypeScript рассматривает значение как соответствующее этому типу, и в дальнейшем можно использовать свойства и методы этого типа без ошибок компиляции.
Например, рассмотрим следующий код:
function isString(value: any): value is string {
return typeof value === "string";
}
let value: any = "hello";
if (isString(value)) {
console.log(value.toUpperCase()); // Вывод: HELLO
} else {
console.log("Value is not a string");
}Здесь мы определяем функцию isString, которая проверяет, является ли значение типом string. Затем мы используем isString в условном операторе для проверки типа значения переменной value. Если isString возвращает true, мы можем безопасно использовать метод toUpperCase для строки value, так как TypeScript теперь рассматривает value как тип string.