Middle
Bir o'zgaruvchi bor va u Book yoki Video turida bo'lishi mumkin. Ob'ekt turini qanday tekshirish mumkin? Tipni nazorat qilish funktsiyasi qanday turni qaytaradi?
sobes.tech AI
AIdan javob
Чтобы проверить тип объекта, который может быть 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, что позволяет компилятору сузить тип внутри условного блока.