Sobes.tech
Middle+

/* Scrie tipul MyRequired — face ca toate câmpurile opționale să fie obligatorii */ type User = { id?: number name?: string } type MyRequired<T> = { } const user1: MyRequired<User> = { id: 1, name: "John" } const user2: MyRequired<User> = { id: 1 }

sobes.tech AI

Răspuns de la AI

Tipul MyRequired<T> poate fi implementat folosind tipuri mapate în TypeScript, eliminând modificatorul ? din toate proprietățile lui T. Acest lucru se face folosind operatorul -? înainte de cheia proprietății:

// Eliminăm opționalitatea din toate proprietățile

type MyRequired<T> = {
  [P in keyof T]-?: T[P]
}

// Exemplu de utilizare

type User = {
  id?: number
  name?: string
}

const user1: MyRequired<User> = { id: 1, name: "John" } // corect
const user2: MyRequired<User> = { id: 1 } // eroare, lipsește câmpul obligatoriu name