Аб'екты ў аб'ектах у TypeScript

Аб'екты могуць утрымліваць у сабе іншыя аб'екты, якія апісваюцца асобінымі інтэрфейсамі. Давайце паглядзім на прыкладах.

Хай у нас ёсць інтэрфейс, які апісвае аб'ект з горадам:

typescriptinterface City {
  name: string
}

Зробім таксама інтэрфейс, які апісвае карыстальніка. Пры гэтым у карыстальніка будзе імя, узрост і горад, які ў сваю чаргу з'яўляецца аб'ектам:

typescriptinterface User {
  name: string,
  age: number,
  city: City
}

Давайце створым аб'ект з карыстальнікам:

typescriptlet city: City = {name: 'london'};
let user: User = {name: 'john', age: 30, city: city};

Не абавязкова для горада ствараць асобную зменную:

typescriptlet user: User = {
  name: 'john',
  age: 30,
  city: {name: 'london'}
};
Задание 1

Дадзены аб'ект:

typescriptlet employee {
  name: 'andrew',
  potision: {
    name: 'programmer'
    salary: 1000,
  },
  addr: {
    country: 'belarus',
    city: 'minsk'
  }
};

Зрабіце інтэрфейс, які апісвае структуру гэтага аб'екта. Вынясіце ўкладзеныя аб'екты ў асобныя інтэрфейсы.

Задание 2

Дадзены аб'ект:

typescriptlet user: User = {
  name: 'john',
  age: 30,
  parents: {
    mother: {
      name: 'jane',
      age: 30,
      parents: null
    },
    father: {
      name: 'eric',
      age: 30,
      parents: null
    }
  }
}

Зрабіце інтэрфейс, які апісвае структуру гэтага аб'екта. Вынясіце ўкладзеныя аб'екты ў асобныя інтэрфейсы.