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