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 EventNameDividir 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"> // neverDicas
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
- Tipos mapeados com +/-readonly e +/-?
- Remapeamento de chaves e tipos de literais de modelo
- Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)