Sobes.tech
Назад к вопросам
Middle
2

interface User { id: number; name: string; email: string; role: "admin" | "user"; settings: { theme: "dark" | "light"; notifications: boolean; }; } type CreateUser = Omit<User, 'id'> type UpdateUser =

Компании, где спрашивали
СберInfra.cloud

Ответ от нейросети

sobes.tech AI

Для определения типа UpdateUser, который представляет обновление пользователя, обычно делают все поля необязательными, кроме id, чтобы можно было менять любые свойства, кроме идентификатора. В TypeScript это можно сделать с помощью Partial и Pick или Omit.

Пример:

interface User {
  id: number;
  name: string;
  email: string;
  role: "admin" | "user";
  settings: {
    theme: "dark" | "light";
    notifications: boolean;
  };
}

type CreateUser = Omit<User, 'id'>

type UpdateUser = Partial<Omit<User, 'id'>> & { id: number };

Здесь UpdateUser требует обязательное поле id для идентификации пользователя, а остальные поля — опциональны, что удобно для частичного обновления данных.