Sobes.tech
Middle+
13

Что такое type guard?

Компании, где спрашивали
М.Видео/эльдорадо

Ответ от нейросети

sobes.tech AI

Type guard — это механизм в TypeScript, который позволяет уточнить тип переменной в определённом блоке кода, чтобы компилятор мог безопасно работать с этим типом. Type guard — это функция или выражение, которое проверяет, соответствует ли объект определённому типу.

Пример type guard с использованием пользовательской функции:

interface Cat {
  meow(): void;
}

interface Dog {
  bark(): void;
}

function isCat(animal: Cat | Dog): animal is Cat {
  return (animal as Cat).meow !== undefined;
}

function speak(animal: Cat | Dog) {
  if (isCat(animal)) {
    animal.meow(); // TypeScript знает, что это Cat
  } else {
    animal.bark(); // Здесь это Dog
  }
}

Таким образом, type guard помогает безопасно работать с объединёнными типами, уточняя их внутри условных конструкций.