TypeScript · Avançado · Inglês · Técnico
template literal types
Tipos construídos com a sintaxe de template string, como `on${string}`, que combinam literais e uniões para gerar novas strings literais em tempo de compilação.
Onde usar
Usados para tipar nomes de eventos, rotas e chaves derivadas: `${Entidade}:${Acao}` gera todas as combinações. São comuns em tipagens de bibliotecas de roteamento e de CSS.
Em código
type Entidade = 'user' | 'post';
type Acao = 'criado' | 'apagado';
type Evento = `${Entidade}:${Acao}`;
// 4 combinações, ex.: 'user:criado'
type Handler = `on${Capitalize<Acao>}`;
// 'onCriado' | 'onApagado'Exemplos
Use a template literal type for the event names.
Use um template literal type para os nomes dos eventos.
The union explodes because of the template literal types.
A união explode por causa dos template literal types.
Cuidado
Combinar duas uniões grandes gera o produto cartesiano; o compilador recusa uniões acima de 100 mil membros, e a checagem fica lenta bem antes disso.