Что в TypeScript позволяет использовать объект как тип

Ответ

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

// Через интерфейс
interface User {
  name: string;
  age: number;
}

const user: User = { name: "Alice", age: 25 };

// Через тип
type Person = {
  name: string;
  age: number;
};

const person: Person = { name: "Bob", age: 30 };

Также можно использовать утилиты типов (Record, Partial, Pick и др.) или индексированные типы для гибкости.

type DynamicObject = Record<string, number>;
const obj: DynamicObject = { count: 5, total: 10 };

Ответ 18+ 🔞

Смотри, ну это ж элементарно, Ватсон! Если тебе в TypeScript нужно из какого-нибудь объекта сделать тип, чтобы компилятор не орал как резаный, есть два главных пути — хуй с горы и манда с ушами. То есть, интерфейсы и типы.

Вот, смотри, как это выглядит, чтоб ты не пиздел, что непонятно:

// Через интерфейс — классика, блядь
interface User {
  name: string;
  age: number;
}

const user: User = { name: "Alice", age: 25 };

// Через тип — почти то же самое, но с другим словом, ёпта
type Person = {
  name: string;
  age: number;
};

const person: Person = { name: "Bob", age: 30 };

По сути, разницы на первый взгляд — нихуя. Выбирай, что душе угодно, хоть монеткой кидай.

А если тебе нужна какая-нибудь хитрая жопа, например, объект, где ключи — строки, а значения — числа, то тут уже в игру вступают утилиты типов. Record — твой лучший друг, он как раз для таких делов.

type DynamicObject = Record<string, number>;
const obj: DynamicObject = { count: 5, total: 10 };

Вот и вся магия. Никакого волшебства, чистая логика, блядь. Главное — начать использовать, а там уже само поймёшь, где и что применить.