Sobes.tech
Middle

Тасвирланглар: TypeScriptнинг ушбу фойдаланувчи турлари ва уларнинг ишлатилиш ҳолатлари: ```typescript type someType1<T extends object> = Partial<T>; type someType2<T extends object> = T[keyof T]; type someType3<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; type SomeType4<T extends object, K extends keyof T = keyof T> = Omit<T, K> & Partial<Pick<T, K>>; ```

sobes.tech AI

AIdan javob

  • Partial<T>T turidagi barcha xususiyatlarni majburiy emas qiladi. Asosan, asl turdagi faqat ba'zi xususiyatlarni ko'rsatish kerak bo'lganda ishlatiladi.

  • T[keyof T] — indeks orqali kirish bo'lib, T ob'ektining barcha xususiyatlarining qiymat turlarining birlashmasini qaytaradi. Masalan, agar T {a: string; b: number} bo'lsa, T[keyof T] string | number bo'ladi.

  • Pick<T, Exclude<keyof T, K>>T turidan K da ko'rsatilmagan barcha xususiyatlarni tanlaydi. Exclude K kalitlarini T ning barcha kalitlaridan chiqaradi, Pick esa qolganlarini tanlaydi. Bu Omit<T, K> ga teng.

  • Omit<T, K> & Partial<Pick<T, K>>K dan bo'lgan xususiyatlar majburiy emas bo'lib, qolganlari majburiy bo'lib qoladi. Bu, ba'zi xususiyatlarni majburiy emas qilish uchun foydalidir.

SomeType4 dan foydalanish misoli:

interface User {
  id: number;
  name: string;
  email: string;
}

// email majburiy emas
type UserWithOptionalEmail = SomeType4<User, 'email'>;

const user1: UserWithOptionalEmail = { id: 1, name: 'Alice' }; // email majburiy emas