Sobes.tech
Middle+

Praktische Aufgabe: Schreiben Sie einen TypeGuard zur Bestimmung des Tier Typs (Hund oder Katze)

sobes.tech KI

Antwort von 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 сузить тип внутри условного блока.