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:
interface IFigure {
height: number;
width: number;
color?: string;
}
Nyt luodaan objekti rectangle ja
tulostetaan sen värin arvo konsoliin:
let rectangle: IFigure = {
height: 200,
width: 300,
color: 'red'
}
console.log(rectangle.color); // 'red'
Ja nyt tarkistetaan, tuleeko virhettä, jos väriä ei aseteta objektissa:
let 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:
undefined
Tee rajapinta IDate objektille,
joka tallentaa päivämäärän: vuosi, kuukausi ja päivä. Olkoon
kaikki objektin ominaisuudet valinnaisia.