interface Person { name: string; age: number; location?: string;}const bob: Omit<Person, 'age' | 'location'> = { name: 'Bob' // `Omit` age va location ni turdan olib tashlaydi, ular bu yerda aniqlanishi mumkin emas};
Pick obyekt turidan faqat ko'rsatilgan kalitlarni saqlaydi.
Misol:
interface Person { name: string; age: number; location?: string;}const bob: Pick<Person, 'name'> = { name: 'Bob' // `Pick` faqat name ni saqlaydi, age va location turdan olib tashlanadi va bu yerda aniqlanishi mumkin emas};
Exclude birikkandagi turlardan ba'zilarini olib tashlaydi.
Misol:
type Primitive = string | number | booleanconst value: Exclude<Primitive, string> = true; // string bu yerda ishlatilishi mumkin emas, chunki Exclude uni turdan olib tashlaydi.
Readonly barcha xususiyatlar faqat o'qilishi mumkin bo'lgan yangi tur yaratish uchun ishlatiladi, ya'ni qiymat belgilanganidan so'ng o'zgartirilishi mumkin emas.
TypeScript bu holatni kompilyatsiya vaqtida oldini oladi, lekin nazariy jihatdan JavaScriptga kompilatsiya qilinganida siz hali ham readonly xususiyatni o'zgartirishingiz mumkin.
Misol:
interface Person { name: string; age: number;}const person: Readonly<Person> = { name: "Dylan", age: 35,};person.name = 'Israel'; // prog.ts(11,8): error TS2540: Cannot assign to 'name' because it is a read-only property.