Back to questions
Middle+
2
Практическое задание: написать TypeGuard для определения типа животного (Dog или Cat)
Companies where asked
Evocargo
Answer from AI
sobes.tech 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 сузить тип внутри условного блока.