Бул 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
AIден жооп
-
Partial<T>—Tтүрүндөгү бардык мүнөздөмөлөрдү милдеттүү эмес кылат. Башкача айтканда, оригинал түрдүн бир бөлүгүн гана көрсөтүү керек болгондо колдонулат. -
T[keyof T]— индекс аркылуу кирүү болуп саналат жанаTобъектисинин бардык мүнөздөмөлөрүнүн маанилеринин бирикмесин кайтарат. Мисалы, эгерT{a: string; b: number}болсо, андаT[keyof T]string | numberболот. -
Pick<T, Exclude<keyof T, K>>—Tтүрүндөгү бардык мүнөздөмөлөрдү тандоодо, алардын ичиненKтизмесинде көрсөтүлгөндөрдү алып салат.ExcludeKачкычтарынTбардык ачкычтарынан чыгарып салат, ал эмиPickкалганын тандоодо колдонулат. БулOmit<T, K>менен барабар. -
Omit<T, K> & Partial<Pick<T, K>>—Kтизмесиндеги мүнөздөмөлөрдү милдеттүү эмес кылган, калганын милдеттүү калтырган тип түзөт. Бул кайсы бир мүнөздөмөлөрдү опционал кылгыңыз келгенде жана калганын милдеттүү калтыргыңыз келгенде пайдалуу.
SomeType4 колдонуу мисалы:
interface User {
id: number;
name: string;
email: string;
}
// email милдеттүү эмес кылынат
type UserWithOptionalEmail = SomeType4<User, 'email'>;
const user1: UserWithOptionalEmail = { id: 1, name: 'Alice' }; // email милдеттүү эмес