Sobes.tech
Middle+

/* MyRequired tipini yazın — bütün seçimlik sahələri məcburi edir */ 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 Süni İntellekt

AI-dan cavab

Type MyRequired<T> TypeScript-də mapped types istifadə etməklə həyata keçirilə bilər, T-nin bütün xüsusiyyətlərindən ? modifikatorunu çıxararaq. Bu, xüsusiyyət açarının əvvəlində -? operatorundan istifadə etməklə edilir:

// Bütün xüsusiyyətlərdə opsionallığı aradan qaldırırıq

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

// İstifadə nümunəsi

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

const user1: MyRequired<User> = { id: 1, name: "John" } // düzgün
const user2: MyRequired<User> = { id: 1 } // səhv, vacib sahə olan name yoxdur