Pasirinktinės sąsajos savybės TypeScript'e

Sąsajoje taip pat galima nustatyti ypatingas pasirinktines (neprivalomas) savybes. Jos reikalingos tam, kad neapriboti objekto tam tikru savybių rinkiniu. Tuo pačiu uždraudžiama naudoti savybes, kurios nepriklauso sąsajai. Pasirinktinės savybės nustatomos naudojant operatorių ?, nurodytą po savybės pavadinimo.

Sukurkime sąsają IFigure, kuri nustato savybes visiems objektams-figūroms. Tegul color bus pasirinktinė savybė:

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

Dabar sukurkime objektą rectangle ir atspausdinkime jo spalvos reikšmę konsolėje:

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

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

O dabar patikrinkime, ar bus klaidos, jei nenustatysime spalvos objekte:

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

console.log(rectangle.color);

Klaidos nebus ir konsolėje bus atvaizduotas pranešimas, kad spalva tiesiog nebuvo apibrėžta:

typescriptundefined
Задание 1

Sukurkite sąsają IDate objektui, kuris saugo datą: metus, mėnesį ir dieną. Tegul visos objekto savybės bus neprivalomos.