Middle
Бардык өзгөрмө Book же Video түрүндө болушу мүмкүн. Объекттин түрүн кантип текшерсе болот? Тип коргоо функциясы кайсы түрдү кайтарат?
sobes.tech AI
AIден жооп
Чтобы проверить тип объекта, который может быть Book или Video, в TypeScript используют type guard — функцию, которая проверяет тип и сообщает компилятору о результате.
Пример:
interface Book {
title: string;
author: string;
pages: number;
}
interface Video {
title: string;
duration: number;
format: string;
}
function isBook(obj: Book | Video): obj is Book {
return (obj as Book).pages !== undefined;
}
const item: Book | Video = getItem();
if (isBook(item)) {
// Здесь TypeScript знает, что item — это Book
console.log(item.author);
} else {
// Здесь item — Video
console.log(item.duration);
}
Функция isBook возвращает тип-предикат obj is Book, что позволяет компилятору сузить тип внутри условного блока.