0Pricing
TypeScript Academy · Aula

Readonly, Exclude, Extract, NonNullable

Aplique mais tipos utilitários para imutabilidade e filtragem

Readonly, Exclude, Extract, NonNullable é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

Boas-vindas

A biblioteca padrão do TypeScript inclui vários tipos utilitários além de Partial, Required, Pick e Omit. Esta lição aborda Readonly, Exclude, Extract e NonNullable.

Readonly<T>

Torna somente leitura todas as propriedades de T. Impede a reatribuição de qualquer propriedade após a criação.
interface Config { host: string; port: number; }
const cfg: Readonly<Config> = { host: 'localhost', port: 3000 };
// cfg.host = 'remote'; // Error!

Exclude<T, U>

Remove da união T todos os membros atribuíveis a U.
type Status = 'pending' | 'active' | 'banned' | 'deleted';
type ActiveStatus = Exclude<Status, 'banned' | 'deleted'>;
// 'pending' | 'active'

Extract<T, U>

Mantém apenas os membros da união T atribuíveis a U. É o oposto de Exclude.
type StringOrNumber = string | number | boolean;
type JustStrNum = Extract<StringOrNumber, string | number>;
// string | number

NonNullable<T>

Remove null e undefined de T.
type MaybeString = string | null | undefined;
type DefinitelyString = NonNullable<MaybeString>; // string

ReturnType<T>

Extrai o tipo de retorno de um tipo de função T.
function fetchUser() { return { id: 1, name: 'Alice' }; }
type User = ReturnType<typeof fetchUser>; // { id: number; name: string }

Parameters<T>

Extrai os tipos dos parâmetros de uma função como uma tupla.
function add(a: number, b: number): number { return a + b; }
type AddParams = Parameters<typeof add>; // [number, number]

InstanceType<T>

Obtém o tipo de instância produzido por um tipo de função construtora.
class HttpClient { get(url: string) { return fetch(url); } }
type Client = InstanceType<typeof HttpClient>; // HttpClient

Awaited<T>

Remove o encapsulamento de tipos Promise aninhados.
type A = Awaited<Promise<string>>;          // string
type B = Awaited<Promise<Promise<number>>>;  // number

Usando vários utilitários em conjunto

Encadeie tipos utilitários para realizar transformações complexas.
type SafeInput<T> = Readonly<Partial<NonNullable<T>>>;

Tipos utilitários são apenas aliases de tipo

Todos os tipos utilitários integrados são implementados usando tipos mapeados, tipos condicionais e infer. Você também pode criar os seus próprios.

Verificação rápida

O que `Exclude<'a' | 'b' | 'c', 'b'>` produz?

Recapitulação

Readonly impede mutações. Exclude remove membros de uniões. Extract mantém os membros correspondentes. NonNullable remove valores anuláveis. ReturnType, Parameters e InstanceType extraem informações de tipos de funções e classes.

Perguntas Frequentes

A aula “Readonly, Exclude, Extract, NonNullable” é grátis?

Sim — o texto completo de “Readonly, Exclude, Extract, NonNullable” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Readonly, Exclude, Extract, NonNullable”?

Aplique mais tipos utilitários para imutabilidade e filtragem Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Readonly, Exclude, Extract, NonNullable”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Partial e Required: alternando a opcionalidade
  2. Pick e Omit: selecionando propriedades
  3. Record: mapeando chaves para tipos de valores
  4. Readonly, Exclude, Extract, NonNullable
← Voltar para TypeScript Academy