Αναφέρετε τους βοηθητικούς τύπους στο 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. Χρησιμοποιείται για ενώσεις (union types).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>: Δημιουργεί έναν τύπο που εξαιρεί από το
Typeτις τιμέςnullκαιundefined.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 = { "Moscow": 12635466, "Saint Petersburg": 5381033, }; -
Parameters<Type>: Επιστρέφει μια πλειάδα (tuple) των τύπων των παραμέτρων της συνάρτησης
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>: Επιστρέφει μια πλειάδα ή πίνακα των τύπων των παραμέτρων κατασκευαστή της κλάσης
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
Η χρήση των βοηθητικών τύπων καθιστά τον κώδικα πιο ασφαλή, πιο εύκολα συντηρήσιμο και πιο εκφραστικό, επιτρέποντας την αποτελεσματική διαχείριση σύνθετων τύπων δεδομένων.