Պատմեք ինձ TypeScript-ում օգտակար տեսակների մասին։
sobes.tech AI
Պատասխան AI-ից
Օգտագործումը TypeScript-ի օգտակար տեսակների արդյունավետ կերպով կառավարելու միջոց է: Այս ներքին տեսակները թույլ են տալիս վերափոխել առկա տվյալների տեսակները նորերի, կատարել տարբեր օգտակար գործողություններ և բարձրացնել կոդի ճկունությունը և վերօգտագործելիությունը: Հիմնական օգտակար տեսակներն են՝
-
Partial<Type>: Ստեղծում է նոր տեսակ, որտեղ բոլոր
Typeհատկությունները դառնում են պարտադիր չէ:interface User { id: number; name: string; age: number; } type PartialUser = Partial<User>; // PartialUser կլինի { id?: number; name?: string; age?: number; } -
Readonly<Type>: Ստեղծում է նոր տեսակ, որտեղ բոլոր
Typeհատկությունները միայն ընթերցանելի են:interface Point { x: number; y: number; } type ReadonlyPoint = Readonly<Point>; // ReadonlyPoint կլինի { readonly x: number; readonly y: number; } -
Pick<Type, Keys>: Ստեղծում է տեսակ՝ ընտրելով որոշ հատկություններ
Keys-իցType-ից:interface Product { id: number; name: string; price: number; description: string; } type ProductSummary = Pick<Product, 'id' | 'name' | 'price'>; // ProductSummary կլինի { id: number; name: string; price: number; } -
Omit<Type, Keys>: Ստեղծում է տեսակ՝ բաց թողնելով որոշ հատկություններ
Keys-իցType-ից:interface Order { id: number; productId: number; quantity: number; timestamp: string; } type OrderDetails = Omit<Order, 'timestamp'>; // OrderDetails կլինի { id: number; productId: number; quantity: number; } -
Exclude<Type, ExcludedUnion>: Ստեղծում է տեսակ՝ բացառելով
Type-ից այն տարրերը, որոնք կարող են լինելExcludedUnion-ին վերագրելի:type Colors = 'red' | 'green' | 'blue' | 'yellow'; type PrimaryColors = Exclude<Colors, 'yellow'>; // PrimaryColors կլինի 'red' | 'green' | 'blue' -
Extract<Type, Union>: Ստեղծում է տեսակ՝ ընտրելով
Type-ից այն տարրերը, որոնք կարող են լինելUnion-ին վերագրելի:type AllAnimals = 'dog' | 'cat' | 'fish' | 'bird'; type PetAnimals = Extract<AllAnimals, 'dog' | 'cat'>; // PetAnimals կլինի 'dog' | 'cat' -
NonNullable<Type>: Ստեղծում է տեսակ՝ բացառելով
nullևundefined-ըType-ից:type MaybeString = string | null | undefined; type NotNullableString = NonNullable<MaybeString>; // NotNullableString կլինի string -
Record<Keys, Type>: Ստեղծում է օբյեկտի տեսակ, որի հատկությունները ունեն
Keys-ից ստացված բանալիներ ևType-ի արժեքներ:type CityPopulation = Record<string, number>; // CityPopulation կլինի { [key: string]: number } const population: CityPopulation = { "Москва": 12635466, "Սանկտ Պետերբուրգ": 5381033, }; -
Parameters<Type>: Վերադարձնում է տիպերի տիպերի տիպը՝ որպես տիպային տիպ:
function greet(name: string, age: number): string { return `Hello, ${name}! You are ${age}.`; } type GreetParams = Parameters<typeof greet>; // GreetParams կլինի [name: string, age: number] -
ReturnType<Type>: Վերադարձնում է ֆունկցիայի
Typeվերադարձվող արժեքի տիպը:function calculateSum(a: number, b: number): number { return a + b; } type SumResult = ReturnType<typeof calculateSum>; // SumResult կլինի number -
ConstructorParameters<Type>: Վերադարձնում է կոնստրուկտորի տիպերի տիպը՝ որպես տիպային տիպ:
class MyClass { constructor(name: string, id: number) {} } type MyClassParams = ConstructorParameters<typeof MyClass>; // MyClassParams կլինի [name: string, id: number] -
InstanceType<Type>: Վերադարձնում է
Type-ի օրինակային տիպը:class AnotherClass { value: string; constructor(v: string) { this.value = v; } } type AnotherClassInstance = InstanceType<typeof AnotherClass>; // AnotherClassInstance կլինի AnotherClass
Օգտագործելով օգտակար տեսակները, կոդը դառնում է ավելի անվտանգ, հեշտ է պահպանել և ավելի արտահայտիչ, ինչը թույլ է տալիս արդյունավետ կառավարել բարդ տվյալների տեսակները։