Точная типизация методов объектов по их именам

TypeScript уже выводит точные ключи из литералов объектов. Для повторного использования можно взять typeof объекта; для явной проверки — задать интерфейс с конкретными методами.

Короткий ответ

Что ответить на собеседовании

TypeScript уже выводит точные ключи из литералов объектов. Для повторного использования можно взять typeof объекта; для явной проверки — задать интерфейс с конкретными методами.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо обеспечить строгую типизацию двух объектов, чтобы каждый метод сохранял свой тип. Применение обобщённых типов вроде string или Record<string, …> приводит к утрате информации о конкретных ключах.

Требования:

  1. Для объекта vtempObj задать точные свойства getVtemplates и postVtemplates.
  2. Для объекта rptObj задать точные свойства getReports и putReports.
  3. При объявлении типы каждого свойства должны быть явно известны компилятору.
// примерные объекты:
const vtempObj = {
  getVtemplates: () => {/* ... */},
  postVtemplates: () => {/* ... */}
}

const rptObj = {
  getReports: () => {/* ... */},
  putReports: () => {/* ... */}
}

// типизация должна сохранять ключи и их значения

Ответ

TypeScript уже выводит точные ключи из литералов объектов. Для повторного использования можно взять typeof объекта; для явной проверки — задать интерфейс с конкретными методами.

type VtemplatesApi = {
  getVtemplates: () => void;
  postVtemplates: () => void;
};
type ReportsApi = {
  getReports: () => void;
  putReports: () => void;
};
const vtempObj: VtemplatesApi = { getVtemplates() {}, postVtemplates() {} };
const rptObj: ReportsApi = { getReports() {}, putReports() {} };

Здесь void соответствует пустым функциям из условия. В реальном API замените сигнатуры конкретными параметрами и возвращаемыми типами. Record<string, ...> расширяет допустимые имена ключей, тогда как интерфейс перечисляет только нужные. Альтернатива — satisfies для проверки контракта с сохранением выведенного типа выражения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее