Objetos dentro de objetos en TypeScript

Los objetos pueden contener otros objetos, descritos por interfaces separadas. Veamos algunos ejemplos.

Supongamos que tenemos una interfaz que describe un objeto con una ciudad:

typescriptinterface City {
  name: string
}

Hagamos también una interfaz que describa al usuario. Al mismo tiempo, el usuario tendrá un nombre, una edad y una ciudad, que a su vez es un objeto:

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

Creemos un objeto con un usuario:

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

No es necesario crear una variable separada para la ciudad:

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

Dado un objeto:

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

Cree una interfaz que describa la estructura de este objeto. Saque los objetos anidados a interfaces separadas.

Задание 2

Dado un objeto:

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

Cree una interfaz que describa la estructura de este objeto. Saque los objetos anidados a interfaces separadas.