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