Опционални свойства на интерфейса в TypeScript
В интерфейса също може да се задават специални
опционални (незадължителни) свойства.
Те са необходими, за да не се ограничава
обекта до определен набор от свойства. При
това се забранява използването на свойства,
които не са част от интерфейса. Опционалните
свойства се задават с помощта на оператора ?,
посочен след името на свойството.
Нека създадем интерфейс IFigure,
който задава свойства на всички обекти-фигури.
Нека color бъде опционално
свойство:
interface IFigure {
height: number;
width: number;
color?: string;
}
Сега нека създадем обект rectangle и
изведем стойността на неговия цвят в конзолата:
let rectangle: IFigure = {
height: 200,
width: 300,
color: 'red'
}
console.log(rectangle.color); // 'red'
А сега нека проверим дали ще има грешка, ако не зададем цвят в обекта:
let rectangle: IFigure = {
height: 200,
width: 300
}
console.log(rectangle.color);
Няма да има грешка и в конзолата ще се изведе съобщение, че цветът просто не е дефиниран:
undefined
Направете интерфейс IDate за обект,
който съхранява дата: година, месец и ден. Нека
всички свойства на обекта да са незадължителни.