Опциональные свойства интерфейса в 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 для объекта,
хранящего дату: год, месяц и день. Пусть
все свойства объекта будут необязательными.