Как типизировать такой объект данных?

Для типизации объекта данных в TypeScript вы можете использовать интерфейсы или типы.

1. Использование интерфейсов:

Интерфейсы позволяют описывать структуру объекта данных. Для типизации объекта, вам нужно создать интерфейс с соответствующими свойствами и их типами. Например, если у вас есть объект с именем и возрастом:

interface Person {
  name: string;
  age: number;
}

Затем вы можете использовать этот интерфейс для типизации объекта:

const person: Person = {
  name: 'John',
  age: 30
};

2. Использование типов:

Типы представляют собой альтернативный способ типизации объектов в TypeScript. Они могут быть более гибкими и могут предоставлять более сложные операции типизации. Пример типизации объекта с помощью типов:

type Person = {
  name: string;
  age: number;
};
const person: Person = {
  name: 'John',
  age: 30
};

3. Расширение интерфейсов и типов:

Вы также можете расширить интерфейсы и типы, добавив дополнительные свойства или переопределяя существующие:

interface Person {
  name: string;
  age: number;
  occupation: string;
}

type Employee = Person & {
  department: string;
};
const employee: Employee = {
  name: 'John',
  age: 30,
  occupation: 'Developer',
  department: 'IT'
};

Таким образом, типизация объекта данных в TypeScript достигается через использование интерфейсов или типов. Интерфейсы обычно используются для описания структуры объектов, в то время как типы могут быть более гибкими и могут предоставлять сложные операции типизации. Расширение интерфейсов и типов позволяет добавлять и изменять свойства объектов.