Sobes.tech
Middle+

/* Escriba el tipo MyRequired — hace que todos los campos opcionales sean obligatorios */ 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

Respuesta de la IA

El tipo MyRequired<T> se puede implementar usando tipos mapeados en TypeScript, eliminando el modificador ? en todas las propiedades de T. Esto se hace usando el operador -? antes de la clave de la propiedad:

// Eliminamos la opcionalidad en todas las propiedades

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

// Ejemplo de uso

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

const user1: MyRequired<User> = { id: 1, name: "John" } // correcto
const user2: MyRequired<User> = { id: 1 } // error, falta la propiedad obligatoria name