Objekto struktūros kontrolė TypeScript
TypeScript taip pat kontroliuoja objekto struktūrą. Tarkime, mes deklaravome savo objektą su vartotoju:
let user = {name: 'john', age: 30};
Deklaravimo metu TypeScript įsimena,
kad mūsų objekte yra raktai 'name'
ir 'age', o tada kontroliuoja, kad
kintamajame būtų saugomas būtent objektas su šiais
raktais.
Bandymas įrašyti į kintamąjį kitą objektą sukelia kompiliavimo klaidą. Pabandykime. Įrašykime į kintamąjį objektą, kuriame trūksta rakto:
user = {name: 'eric'}; // klaida
Įrašykime į kintamąjį naują objektą su tokiais paciais raktais, bet dar ir su papildomu raktu:
user = {name: 'eric', age: 40, salary: 300}; // klaida
O dabar įrašykime į kintamąjį objektą,
kuriame yra tik raktai 'name' ir
'age':
user = {name: 'eric', age: 40}; // veikia
Nepaleisdami kodo nustatykite, koks bus vykdymo rezultatas:
let date = {year: 2025, month: 12, day: 31};
date = {year: 2025, month: 12};
Nepaleisdami kodo nustatykite, koks bus vykdymo rezultatas:
let date = {year: 2025, month: 12, day: 31};
date = {year: 2025, month: 12, date: 7};