ExpertiDict

TypeScript · Avançado · Inglês · Técnico

template literal types

/ˈtɛmplət ˈlɪtɚəl taɪps/substantivo

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.

Veja também

Todos os termos de TypeScript