Middle+
/* Napišite tip MyRequired — naredi vsa opcijska polja obvezna */ 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
Odpoveď od AI
Typ MyRequired<T> je možné implementovať pomocou mapped types v TypeScript, odstránením modifikátora ? zo všetkých vlastností typu T. To sa robí pomocou operátora -? pred kľúčom vlastnosti:
// Odstraňujeme voliteľnosť zo všetkých vlastností
type MyRequired<T> = {
[P in keyof T]-?: T[P]
}
// Príklad použitia
type User = {
id?: number
name?: string
}
const user1: MyRequired<User> = { id: 1, name: "John" } // správne
const user2: MyRequired<User> = { id: 1 } // chyba, chýba povinné pole name