Sobes.tech
Back to questions
Middle
1

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

Companies where asked
СберInfra.cloud

Answer from AI

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 для идентификации пользователя, а остальные поля — опциональны, что удобно для частичного обновления данных.