Skip to content

TypeScriptin aputyypit selitettynä

TypeScriptin sisäänrakennetut aputyypit ja niiden mukana kulkevat avainsanat, ryhmiteltyinä tehtävän mukaan: muotoile objekti uudelleen, suodata unioni, kuvaa funktio, muunna literaalimerkkijono ja nosta tyypit arvoista. Jokainen rivi näyttää tyypin ja oikean aliaksen, jonka kirjoittaisit.

Aputyypit ovat geneerisiä funktioita tyypeille: ne ottavat yhden tai kaksi tyyppiä ja palauttavat uuden, joten sinun ei tarvitse kirjoittaa jokaista muotoa käsin. Ne loistavat johdetuissa tyypeissä, joissa totuuden lähde on toinen tyyppi tai arvo ja haluat tyyppiesi seurata sitä automaattisesti. Nyrkkisääntö: johda pikemmin kuin monista — jos muutat lähdettä, johdettu tyyppi seuraa perässä.

Referenssitaulukko · 22 merkintää
22 of 22 rows
Objektin muoto
T, jossa jokainen ominaisuus on valinnainen.type Update = Partial<User>
T, jossa jokainen ominaisuus on pakollinen.type Strict = Required<Opts>
T, jossa jokainen ominaisuus on readonly.type Frozen = Readonly<User>
T, jossa säilytetään vain avaimet K.type Preview = Pick<User, "id" | "name">
T, josta avaimet K on poistettu.type SafeUser = Omit<User, "password">
Objekti, jonka avaimet ovat K ja arvot V.type Scores = Record<string, number>
Unionien suodatus
Unioni U ilman jäseniä, jotka ovat sijoitettavissa X:ään.type NoNull = Exclude<T, null>
Unionin U jäsenet, jotka ovat sijoitettavissa X:ään.type OnlyStr = Extract<T, string>
T ilman null- ja undefined-arvoja.type Def = NonNullable<T>
Funktiotyypit
Tuplu funktion F parametrien tyypeistä.type P = Parameters<typeof fn>
Tyyppi, jonka funktio F palauttaa.type R = ReturnType<typeof fn>
Tuplu konstruktorin F parametrien tyypeistä.type C = ConstructorParameters<typeof Date>
Instanssin tyyppi, jonka konstruktori F tuottaa.type D = InstanceType<typeof Date>
Tyyppi, joksi Promise ratkeaa, rekursiivisesti.type Data = Awaited<Promise<User>>
Literaalimerkkijonojen muunnokset
Merkkijonoliteraali S isoilla kirjaimilla.type A = Uppercase<"abc"> // "ABC"
Merkkijonoliteraali S pienillä kirjaimilla.type B = Lowercase<"ABC"> // "abc"
S, jonka ensimmäinen merkki on iso kirjain.type C = Capitalize<"abc"> // "Abc"
S, jonka ensimmäinen merkki on pieni kirjain.type D = Uncapitalize<"Abc"> // "aBc"
Liittyvät avainsanat
Unioni objektityypin T ominaisuusavaimista.type K = keyof User
Arvon tyyppi kirjoittamatta sitä uudelleen.type Config = typeof defaults
Sieppaa tyypin ehtotyypin sisällä uudelleenkäytettäväksi.type El<T> = T extends Array<infer I> ? I : never
Valitsee tyypin X tai Y sen mukaan, onko T sijoitettavissa U:han.type IsStr<T> = T extends string ? true : false