ინტერფეისის ოფციონალური თვისებები TypeScript-ში

ინტერფეისში ასევე შესაძლებელია განსაკუთრებული ოფციონალური (არასავალდებულო) თვისებების მითითება. ისინი საჭიროა იმისთვის, რომ არ შევზღუდოთ ობიექტი თვისებების კონკრეტული ნაკრებით. ამასთან, აკრძალულია ისეთი თვისებების გამოყენება, რომლებიც არ შედის ინტერფეისში. ოფციონალური თვისებები მითითებულია ოპერატორით ?, რომელიც დაყვება თვისების სახელს.

შევქმნათ ინტერფეისი IFigure, რომელიც აღწერს ყველა ობიექტ-ფიგურის თვისებებს. მოდით color იყოს ოფციონალური თვისება:

typescriptinterface IFigure {
  height: number;
  width: number;
  color?: string;
}

ახლა შევქმნათ ობიექტი rectangle და გამოვიტანოთ მისი ფერის მნიშვნელობა კონსოლში:

typescriptlet rectangle: IFigure = {
  height: 200,
  width: 300,
  color: 'red'
}

console.log(rectangle.color); // 'red'

ახლა კი შევამოწმოთ, იქნება თუ არა შეცდომა, თუ ობიექტში არ მივუთითებთ ფერს:

typescriptlet rectangle: IFigure = {
  height: 200,
  width: 300
}

console.log(rectangle.color);

შეცდომა არ მოხდება და კონსოლში გამოიყოფა შეტყობინება იმის შესახებ, რომ ფერი უბრალოდ არ არის განსაზღვრული:

typescriptundefined
Задание 1

შექმენით ინტერფეისი IDate ობიექტისთვის, რომელიც ინახავს თარიღს: წელი, თვე და დღე. მოდით ობიექტის ყველა თვისება იყოს არასავალდებულო.