Sobes.tech
Middle+

/* Écrivez le type MyRequired — rend tous les champs optionnels obligatoires */ 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 IA

Réponse de l'IA

Le type MyRequired<T> peut être implémenté à l'aide de types mappés en TypeScript, en supprimant le modificateur ? de toutes les propriétés de T. Cela se fait en utilisant l'opérateur -? avant la clé de la propriété:

// Suppression de l'optionnalité sur toutes les propriétés

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

// Exemple d'utilisation

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

const user1: MyRequired<User> = { id: 1, name: "John" } // correct
const user2: MyRequired<User> = { id: 1 } // erreur, la propriété obligatoire name manque