📌 Muitas vezes, queremos um tipo que aceite literais especÃficos (para sugestão) e qualquer outra string (para flexibilidade).
O Problema:
Se você escreve type MyType = 'A' | 'B' | string, o TypeScript é "inteligente demais" e simplifica para apenas string, removendo as sugestões de 'A' e 'B'.
A Solução:
Usamos o (string & {}).
Essa interseção com o objeto vazio ({}) impede que o TS colapse a união para apenas string. Ele preserva a lista de literais para o IntelliSense, mantendo a porta aberta para qualquer outra string.
✨ Resultado final: Você ganha sugestão de código (IntelliSense) para os casos mais comuns, sem abrir mão da flexibilidade total da string. É um ganho enorme para a experiência do desenvolvedor!
Top comments (0)