Sobes.tech
Middle+

/* Schrijf het type MyRequired — maakt alle optionele velden verplicht */ 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

Antwoord van AI

Het type MyRequired<T> kan worden geïmplementeerd met behulp van mapped types in TypeScript, door de optionele modifier ? van alle eigenschappen van T te verwijderen. Dit wordt gedaan met de operator -? vóór de sleutel van de eigenschap:

// Verwijder de optionele status van alle eigenschappen

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

// Voorbeeld van gebruik

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

const user1: MyRequired<User> = { id: 1, name: "John" } // correct
const user2: MyRequired<User> = { id: 1 } // fout, ontbreekt de verplichte eigenschap name