Sobes.tech
Middle+

/* Uzrakstiet MyRequired tipu — padara visus opcionalius laukus obligatais */ 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

Atbilde no AI

Tips MyRequired<T> var izmantot, izmantojot mapped types TypeScript, noņemot ? modifikatoru no visām T īpašībām. To izdarīt ar operatoru -? pirms īpašības atslēgas:

// Noņemam opcionalitāti no visām īpašībām

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

// Piemērs lietošanai

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

const user1: MyRequired<User> = { id: 1, name: "John" } // pareizi
const user2: MyRequired<User> = { id: 1 } // kļūda, trūkst obligātais lauks name