Live coding: реализовать собственный тип MyOmit<T, K> (аналог утилиты Omit в TypeScript)

Тип MyOmitT, K должен создавать новый тип на основе T, исключая из него ключи K.

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

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

Тип MyOmit<T, K> должен создавать новый тип на основе T, исключая из него ключи K.

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

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

Тип MyOmit<T, K> должен создавать новый тип на основе T, исключая из него ключи K.

Реализация через mapped types и условные типы:

// K extends keyof T — ключи, которые нужно исключить
// [P in keyof T as P extends K ? never : P]: T[P] — перебираем ключи T, исключая K

type MyOmit<T, K extends keyof T> = {
  [P in keyof T as P extends K ? never : P]: T[P]
};

// Пример использования:
interface User {
  id: number;
  name: string;
  age: number;
}

type UserWithoutAge = MyOmit<User, 'age'>;
// Результат: { id: number; name: string; }

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку