Sobes.tech
Middle

Αναφέρετε τους τύπους utility στο TypeScript.

sobes.tech AI

Απάντηση από AI

Τύποι Utility στο TypeScript – είναι ενσωματωμένοι βοηθητικοί τύποι που απλοποιούν γενικές λειτουργίες πάνω σε τύπους, όπως μετατροπές, εξαγωγές ή εξαίρεση συγκεκριμένων ιδιοτήτων. Αυτοί αυξάνουν την ευελιξία και την αναγνωσιμότητα του κώδικα.

Βασικοί χρήσιμοι τύποι:

  • Partial<Type>: Δημιουργεί έναν τύπο όπου όλες οι ιδιότητες του Type είναι προαιρετικές.
    // Δημιουργεί τύπο με προαιρετικές ιδιότητες 'name' και 'age'
    type PartialUser = Partial<{ name: string; age: number }>;
    
  • Readonly<Type>: Δημιουργεί έναν τύπο όπου όλες οι ιδιότητες του Type είναι μόνο για ανάγνωση.
    // Δημιουργεί τύπο με ιδιότητες 'name' και 'age', διαθέσιμες μόνο για ανάγνωση
    type ReadonlyUser = Readonly<{ name: string; age: number }>;
    
  • Pick<Type, Keys>: Δημιουργεί τύπο επιλέγοντας ένα σύνολο ιδιοτήτων Keys από τον Type. Το Keys μπορεί να είναι λεκτικός χαρακτήρας ή ένωση λεκτικών χαρακτήρων.
    // Δημιουργεί τύπο που περιέχει μόνο την ιδιότητα 'name'
    type UserWithName = Pick<{ name: string; age: number }, 'name'>;
    
  • Omit<Type, Keys>: Δημιουργεί τύπο εξαιρώντας ένα σύνολο ιδιοτήτων Keys από τον Type.
    // Δημιουργεί τύπο που περιέχει μόνο την ιδιότητα 'age'
    type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;
    
  • Exclude<UnionType, ExcludedMembers>: Δημιουργεί τύπο εξαιρώντας από το UnionType όλα τα μέλη που μπορούν να ανατεθούν στο ExcludedMembers.
    // Δημιουργεί τύπο που εξαιρεί το 'null' από την ένωση
    type NonNullableString = Exclude<string | null | undefined, null | undefined>;
    
  • Extract<Type, Union>: Εξάγει από τον Type όλα τα μέλη που μπορούν να ανατεθούν στο Union.
    // Εξάγει το 'null' και το 'undefined' από την ένωση
    type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;
    
  • NonNull<Type>: Εξαιρεί το null και το undefined από τον Type.
    // Δημιουργεί τύπο που εξαιρεί το 'null' και το 'undefined'
    type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;
    
  • Parameters<Type>: Λαμβάνει τους τύπους των παραμέτρων μιας συνάρτησης Type ως πλειάδα.
    // Λαμβάνει τους τύπους των παραμέτρων μιας συνάρτησης: [string, number]
    type FuncParams = Parameters<(a: string, b: number) => void>;
    
  • ReturnType<Type>: Λαμβάνει τον τύπο της επιστρεφόμενης τιμής μιας συνάρτησης Type.
    // Λαμβάνει τον τύπο της επιστρεφόμενης τιμής μιας συνάρτησης: number
    type FuncReturn = ReturnType<() => number>;
    
  • ConstructorParameters<Type>: Εξάγει τους τύπους των παραμέτρων του κατασκευαστή του τύπου κατασκευαστή.
    // Λαμβάνει τους τύπους των παραμέτρων του κατασκευαστή της κλάσης: [string, number]
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    
  • InstanceType<Type>: Εξάγει τον τύπο του αντικειμένου που δημιουργείται από τον κατασκευαστή τύπου.
    // Εξάγει τον τύπο του αντικειμένου της κλάσης: MyClass
    type MyClassInstance = InstanceType<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    

Η χρήση των utility τύπων συμβάλλει στη δημιουργία πιο ασφαλούς, ευέλικτου και εύκολα συντηρήσιμου κώδικα.