Описывай форму своих объектов точными типами, а затем делай их переиспользуемыми с помощью интерфейсов.
Открыть этот урок в KodokonВ JavaScript объект объединяет несколько связанных сведений в виде пар «ключ - значение», как карточка с данными: у книги есть название и количество страниц. В TypeScript ты можешь описать точную форму объекта: какие свойства он содержит и какого типа каждое из них.
const book: { title: string; pages: number } = {
title: "The Little Prince",
pages: 96,
};
console.log(book.title); // "The Little Prince"Выписывать форму целиком каждый раз быстро становится утомительно. Интерфейс даёт этой форме имя, чтобы ты мог переиспользовать её везде. Он объявляется ключевым словом interface, за которым идёт имя (по соглашению с заглавной буквы), а затем список свойств и их типов.
interface Recipe {
name: string;
servings: number;
isVegetarian: boolean;
}
const pancakes: Recipe = {
name: "Pancakes",
servings: 4,
isVegetarian: true,
};Все свойства интерфейса по умолчанию обязательны: если забыть servings, будет ошибка. Чтобы сделать свойство необязательным, добавь вопросительный знак ? сразу после его имени. Тогда объект можно создать как с этим свойством, так и без него.
interface Contact {
name: string;
phone: string;
email?: string; // optional thanks to the ?
}
const alice: Contact = {
name: "Alice",
phone: "0601020304",
}; // allowed: email can be omitted