Sobes.tech
Middle+

/* Kirjutage tüüpi MyRequired — muudab kõik valikulised väljad kohustuslikuks */ 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

Vastus AI-lt

Tüüp MyRequired<T> saab rakendada, kasutades mapped types TypeScriptis, eemaldades ? modifikaatori kõigist T omadustest. Seda tehakse kasutades operaatorit -? enne omaduse võti:

// Eemaldame kõigist omadustest valikulise märgise

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

// Näide kasutamisest

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

const user1: MyRequired<User> = { id: 1, name: "John" } // õige
const user2: MyRequired<User> = { id: 1 } // viga, puudub kohustuslik väli name