Skip to content

Βοηθητικοί τύποι TypeScript εξηγούνται

Οι ενσωματωμένοι βοηθητικοί τύποι του TypeScript και οι λέξεις-κλειδιά που τους συνοδεύουν, ομαδοποιημένοι ανά εργασία: αναδιαμόρφωση αντικειμένου, φιλτράρισμα ένωσης, περιγραφή συνάρτησης, μετασχηματισμός string literal και σύλληψη τύπων από τιμές. Κάθε σειρά δείχνει τον τύπο και ένα πραγματικό alias που θα γράφατε.

Οι βοηθητικοί τύποι είναι generics συναρτήσεις για τύπους: παίρνουν έναν ή δύο τύπους και επιστρέφουν έναν νέο, ώστε να μη χρειάζεται να γράφετε κάθε σχήμα χειροκίνητα. Ξεχωρίζουν στους παράγωγους τύπους, όπου η πηγή αλήθειας είναι ένας άλλος τύπος ή μια τιμή και θέλετε οι τύποι σας να την ακολουθούν αυτόματα. Ο πρακτικός κανόνας είναι να παράγετε αντί να αντιγράφετε: αν αλλάξετε την πηγή, ο παράγωγος τύπος ακολουθεί.

Πίνακας αναφοράς · 22 καταχωρήσεις
22 of 22 rows
Σχήμα αντικειμένου
Το T με κάθε ιδιότητα προαιρετική.type Update = Partial<User>
Το T με κάθε ιδιότητα υποχρεωτική.type Strict = Required<Opts>
Το T με κάθε ιδιότητα μόνο για ανάγνωση.type Frozen = Readonly<User>
Το T με μόνο τα κλειδιά του K να διατηρούνται.type Preview = Pick<User, "id" | "name">
Το T με τα κλειδιά του K αφαιρεμένα.type SafeUser = Omit<User, "password">
Ένα αντικείμενο του οποίου τα κλειδιά είναι K και οι τιμές V.type Scores = Record<string, number>
Φιλτράρισμα ένωσης
Η ένωση U χωρίς τα μέλη που εκχωρούνται στο X.type NoNull = Exclude<T, null>
Τα μέλη της U που εκχωρούνται στο X.type OnlyStr = Extract<T, string>
Το T χωρίς τα null και undefined.type Def = NonNullable<T>
Τύποι συναρτήσεων
Μια πλειάδα (tuple) με τους τύπους παραμέτρων της συνάρτησης F.type P = Parameters<typeof fn>
Ο τύπος που επιστρέφει η συνάρτηση F.type R = ReturnType<typeof fn>
Μια πλειάδα (tuple) με τους τύπους παραμέτρων του constructor F.type C = ConstructorParameters<typeof Date>
Ο τύπος instance που παράγει ο constructor F.type D = InstanceType<typeof Date>
Ο τύπος στον οποίο επιλύεται ένα Promise, αναδρομικά.type Data = Awaited<Promise<User>>
Μετασχηματισμοί string literals
Το string literal S με κεφαλαία γράμματα.type A = Uppercase<"abc"> // "ABC"
Το string literal S με πεζά γράμματα.type B = Lowercase<"ABC"> // "abc"
Το S με τον πρώτο χαρακτήρα κεφαλαίο.type C = Capitalize<"abc"> // "Abc"
Το S με τον πρώτο χαρακτήρα πεζό.type D = Uncapitalize<"Abc"> // "aBc"
Σχετικές λέξεις-κλειδιά
Μια ένωση των κλειδιών ιδιοτήτων του τύπου αντικειμένου T.type K = keyof User
Ο τύπος μιας τιμής, χωρίς να τον ξαναγράψετε.type Config = typeof defaults
Συλλαμβάνει έναν τύπο μέσα σε conditional τύπο για επαναχρησιμοποίηση.type El<T> = T extends Array<infer I> ? I : never
Επιλέγει τον τύπο X ή Y ανάλογα με το αν το T εκχωρείται στο U.type IsStr<T> = T extends string ? true : false