Valinnaiset ominaisuudet TypeScript-rajapinnassa

Rajapinnassa voidaan myös määrittää erityisiä valinnaisia (ei-pakollisia) ominaisuuksia. Ne tarvitaan, jotta objektia ei rajoitettaisi tiettyyn ominaisuusjoukkoon. Samaan aikaan kielletään niiden ominaisuuksien käyttö, jotka eivät kuulu rajapintaan. Valinnaiset ominaisuudet määritetään käyttämällä ?-operaattoria, nimen jälkeen.

Luodaan rajapinta IFigure, joka määrittää ominaisuudet kaikille objekteille, jotka ovat kuvioita. Olkoon color valinnaisen ominaisuus:

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

Nyt luodaan objekti rectangle ja tulostetaan sen värin arvo konsoliin:

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

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

Ja nyt tarkistetaan, tuleeko virhettä, jos väriä ei aseteta objektissa:

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

console.log(rectangle.color);

Virhettä ei tule ja konsoliin tulostuu viesti siitä, että väriä ei ole yksinkertaisesti määritelty:

typescriptundefined
Задание 1

Tee rajapinta IDate objektille, joka tallentaa päivämäärän: vuosi, kuukausi ja päivä. Olkoon kaikki objektin ominaisuudet valinnaisia.