0Pricing
TypeScript Academy · Aula

Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)

Restrinja textos com tipos de literais de modelo: padrões de parâmetros de rota, namespaces de nomes de eventos e construtores seguros.

Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos) é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 de 3. 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 3 aulas no total.

Introdução

Objetivo: modelar formatos de texto nos tipos. Com tipos literais de modelo, você pode impor padrões como "/users/:id" ou "user:created", mantendo uma excelente DX.

  • Restringir por prefixo ou sufixo
  • Extrair partes com infer
  • Criar auxiliares seguros

Parâmetros de rota

Defina um modelo simples de rota e infira o nome do parâmetro; use never nos casos que não obedecerem à regra.

type Route = `/${string}`

type RouteWithParam = `/${string}/:${string}`

type ParamOf<R extends string> = R extends `${string}/:${infer P}` ? P : never

// examples
type A = ParamOf<"/users/:id">      // "id"
type B = ParamOf<"/posts/:slug">    // "slug"

Auxiliar seguro para rotas

Construtor seguro: a função auxiliar aceita modelos que começam com "/"; os demais são rejeitados durante a compilação.

type Path<R extends string> = R extends `/${string}` ? R : never

function route<R extends Path<R>>(r: R) { return r }

const ok = route("/users/:id")    // ok
// const bad = route("users")      // error: must start with "/"

Espaços de nomes de eventos

Limite os prefixos (por exemplo, user: e order:) e bloqueie nomes de campos inválidos com tipos.

type EventName = `user:${string}` | `order:${string}`

function on<E extends EventName>(name: E, cb: (data: unknown) => void) {
  // ... register listener
}

on("user:created", d => {})     // ok
// on("payment:done", d => {})  // error: not an EventName

Dividir evento

Extraia as duas seções com inferência e converta-as em campos tipados; formatos inválidos nunca ocorrerão.

type SplitEvent<E extends string> = E extends `${infer Scope}:${infer Action}` ? { scope: Scope; action: Action } : never

type S = SplitEvent<"user:created">   // { scope: "user"; action: "created" }

type Bad = SplitEvent<"oops">          // never

Dicas

Dicas:

Mantenha as restrições mínimas; modelos excessivamente rígidos exigem refatorações.

Combine as regras em um único lugar usando funções construtoras.

Não se esqueça de mapear o texto subjacente para dados desconhecidos e validá-lo durante a execução.

Verificação dos espaços de nomes

Verificação rápida: qual padrão restringe os nomes de eventos a dois espaços de nomes?

Recapitulação

Recapitulação: restrinja textos modelados com tipos literais de modelo; extraia partes com inferência; crie funções construtoras seguras.

Perguntas Frequentes

A aula “Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)” é grátis?

Sim — o texto completo de “Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)” é 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 3 aulas no total.

O que vou aprender em “Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)”?

Restrinja textos com tipos de literais de modelo: padrões de parâmetros de rota, namespaces de nomes de eventos e construtores seguros. 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 3 de 3.

Quanto tempo leva a aula “Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)”?

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. Tipos mapeados com +/-readonly e +/-?
  2. Remapeamento de chaves e tipos de literais de modelo
  3. Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)
← Voltar para TypeScript Academy