Papaskinkite apie naudingus tipus TypeScript.
sobes.tech AI
Atsakymas iš AI
Naudojant TypeScript naudingus tipus yra efektyvus būdas valdyti sudėtingus duomenų tipus. Šie įmontuoti tipai leidžia perkurti esamus tipus naujais, atlikti įvairias naudingas operacijas ir pagerinti kodo lankstumą bei pakartotinį naudojimą. Pagrindiniai naudingieji tipai yra:
-
Partial<Type>: Kuria naują tipą, kuriame visi
Typesavybės yra neprivalomos.interface User { id: number; name: string; age: number; } type PartialUser = Partial<User>; // PartialUser bus { id?: number; name?: string; age?: number; } -
Readonly<Type>: Kuria naują tipą, kuriame visos
Typesavybės yra tik skaitymui.interface Point { x: number; y: number; } type ReadonlyPoint = Readonly<Point>; // ReadonlyPoint bus { readonly x: number; readonly y: number; } -
Pick<Type, Keys>: Sukuria tipą pasirinkdami tam tikras
Keyssavybes išType.interface Product { id: number; name: string; price: number; description: string; } type ProductSummary = Pick<Product, 'id' | 'name' | 'price'>; // ProductSummary bus { id: number; name: string; price: number; } -
Omit<Type, Keys>: Sukuria tipą, išskyrus tam tikras
Keyssavybes išType.interface Order { id: number; productId: number; quantity: number; timestamp: string; } type OrderDetails = Omit<Order, 'timestamp'>; // OrderDetails bus { id: number; productId: number; quantity: number; } -
Exclude<Type, ExcludedUnion>: Sukuria tipą, išskyrus
Typeelementus, kurie gali būti priskirtiExcludedUnion.type Colors = 'red' | 'green' | 'blue' | 'yellow'; type PrimaryColors = Exclude<Colors, 'yellow'>; // PrimaryColors bus 'red' | 'green' | 'blue' -
Extract<Type, Union>: Sukuria tipą, pasirinkdami iš
Typetų elementų, kurie gali būti priskirtiUnion.type AllAnimals = 'dog' | 'cat' | 'fish' | 'bird'; type PetAnimals = Extract<AllAnimals, 'dog' | 'cat'>; // PetAnimals bus 'dog' | 'cat' -
NonNullable<Type>: Sukuria tipą, išskyrus
nullirundefinedišType.type MaybeString = string | null | undefined; type NotNullableString = NonNullable<MaybeString>; // NotNullableString bus string -
Record<Keys, Type>: Sukuria objekto tipą, kurio savybės turi
Keysir reikšmesType.type CityPopulation = Record<string, number>; // CityPopulation bus { [key: string]: number } const population: CityPopulation = { "Moskva": 12635466, "Sankt Peterburg": 5381033, }; -
Parameters<Type>: Grąžina funkcijos parametrų tipų sąrašą (tuple).
function greet(name: string, age: number): string { return `Hello, ${name}! You are ${age}.`; } type GreetParams = Parameters<typeof greet>; // GreetParams bus [name: string, age: number] -
ReturnType<Type>: Grąžina funkcijos grąžinamosios reikšmės tipą.
function calculateSum(a: number, b: number): number { return a + b; } type SumResult = ReturnType<typeof calculateSum>; // SumResult bus number -
ConstructorParameters<Type>: Grąžina klasės konstruktoriaus parametrų tipų sąrašą.
class MyClass { constructor(name: string, id: number) {} } type MyClassParams = ConstructorParameters<typeof MyClass>; // MyClassParams bus [name: string, id: number] -
InstanceType<Type>: Grąžina
Typeklasės egzemplioriaus tipą.class AnotherClass { value: string; constructor(v: string) { this.value = v; } } type AnotherClassInstance = InstanceType<typeof AnotherClass>; // AnotherClassInstance bus AnotherClass
Naudojant naudingus tipus, kodas tampa saugesnis, lengviau prižiūrimas ir išraiškingesnis, leidžiantis efektyviai valdyti sudėtingus duomenų tipus.