Middle+
Zadanie praktyczne: napisz TypeGuard do określenia typu zwierzęcia (Pies lub Kot)
sobes.tech AI
Odpowiedź od AI
TypeGuard в TypeScript позволяет уточнить тип объекта во время выполнения, чтобы компилятор понимал, какой именно тип используется.
Пример TypeGuard для определения, является ли животное собакой или кошкой:
interface Dog {
bark(): void;
}
interface Cat {
meow(): void;
}
function isDog(animal: Dog | Cat): animal is Dog {
return (animal as Dog).bark !== undefined;
}
// Использование:
function makeSound(animal: Dog | Cat) {
if (isDog(animal)) {
animal.bark();
} else {
animal.meow();
}
}
Здесь функция isDog проверяет наличие метода bark, что позволяет TypeScript сузить тип внутри условного блока.