Skip to content

Tipos Utilitários de TypeScript explicados

Os tipos utilitários incorporados do TypeScript e as palavras-chave que os acompanham, agrupados por função: remodelar um objeto, filtrar uma união, descrever uma função, transformar um literal de cadeia e capturar tipos a partir de valores. Cada linha mostra o tipo e um alias real que escreveria.

Os tipos utilitários são funções genéricas para tipos: recebem um ou dois tipos e devolvem um novo, para não ter de escrever cada forma à mão. Brilham em tipos derivados, onde a fonte da verdade é outro tipo ou um valor e quer que os seus tipos o sigam automaticamente. A regra prática é derivar em vez de duplicar: se mudar a fonte, o tipo derivado acompanha.

Tabela de referência · 22 entradas
22 of 22 rows
Forma de objeto
T com todas as propriedades opcionais.type Update = Partial<User>
T com todas as propriedades obrigatórias.type Strict = Required<Opts>
T com todas as propriedades apenas de leitura.type Frozen = Readonly<User>
T apenas com as chaves de K mantidas.type Preview = Pick<User, "id" | "name">
T com as chaves de K removidas.type SafeUser = Omit<User, "password">
Um objeto cujas chaves são K e cujos valores são V.type Scores = Record<string, number>
Filtragem de união
A união U com os membros atribuíveis a X removidos.type NoNull = Exclude<T, null>
Os membros de U que são atribuíveis a X.type OnlyStr = Extract<T, string>
T com null e undefined removidos.type Def = NonNullable<T>
Tipos de função
Um tuple com os tipos de parâmetro da função F.type P = Parameters<typeof fn>
O tipo que a função F devolve.type R = ReturnType<typeof fn>
Um tuple com os tipos de parâmetro do construtor F.type C = ConstructorParameters<typeof Date>
O tipo de instância produzido pelo construtor F.type D = InstanceType<typeof Date>
O tipo a que uma Promise resolve, recursivamente.type Data = Awaited<Promise<User>>
Transformações de literais de cadeia
O literal de cadeia S em maiúsculas.type A = Uppercase<"abc"> // "ABC"
O literal de cadeia S em minúsculas.type B = Lowercase<"ABC"> // "abc"
S com o primeiro caráter em maiúscula.type C = Capitalize<"abc"> // "Abc"
S com o primeiro caráter em minúscula.type D = Uncapitalize<"Abc"> // "aBc"
Palavras-chave relacionadas
Uma união das chaves de propriedade do tipo de objeto T.type K = keyof User
O tipo de um valor, sem o escrever de novo.type Config = typeof defaults
Captura um tipo dentro de um condicional para reutilização.type El<T> = T extends Array<infer I> ? I : never
Escolhe o tipo X ou Y conforme T é ou não atribuível a U.type IsStr<T> = T extends string ? true : false