TypeScript да интерфейсларнинг хоссалари

Фарз қилайлик, бизда фойдаланувчини тавсифловчи интерфейс бор:

typescriptinterface IUser {
  
}

Келик, бу интерфейсга хоссалар ва уларнинг турларини қўшайлик:

typescriptinterface IUser {
  name: string;
  age: number;
}

Энди интерфейс объектини яратамиз. Бунинг учун ўзгарувчи эълон қиламиз, унда тур сифатида танланган интерфейсни кўрсатамиз:

typescriptlet user: IUser;

Энди биз интерфейсда белгиланган хоссалар учун қийматларни белгилашимиз мумкин:

typescriptlet user: IUser = {
  name: 'john',
  age: 30
}

Агар энди фойдаланувчини керакли хоссаларни белгиламаган холда яратмоқчи бўлсак, хатоликни кўрамиз:

typescriptlet user: IUser = {
  name: 'john',  // хатолик
}

Шунингдек, ортиқча хосса яратмоқчи бўлсак, хатолик юзага келади:

typescriptlet user: IUser = {
  name: 'john',
  surn: 'smit', // хатолик
  age: 30
}
Задание 1

IMath интерфейсини яратинг, унда num1 ва num2 хоссалари мавжуд бўлсин.

Задание 2

Юқорида яратилган интерфейс учун calc объектини амалга оширинг.