Capítulo 3. Uniões e literais
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Nada é constante
Os valores podem mudar com o tempo
(bem, exceto as constantes)
Capítulo 2, "O Sistema de Tipos" cobriu o conceito do "sistema de tipos" e como ele pode ler valores para entender os tipos de variáveis. Agora eu gostaria de apresentar dois conceitos-chave com os quais o Typescript trabalha para fazer inferências em cima desses valores:
- Sindicatos
-
Expandir o tipo permitido de um valor para ser dois ou mais tipos possíveis
- Estreitamento
-
Reduzir o tipo permitido de um valor para que não seja um ou mais tipos possíveis
Juntos, as uniões e o estreitamento são conceitos poderosos que permitem que o Typescript faça inferências informadas sobre o teu código que muitas outras linguagens convencionais não conseguem fazer.
Tipos de União
Pega nesta variável mathematician:
letmathematician=Math.random()>0.5?undefined:"Mark Goldberg";
De que tipo é mathematician?
Não é apenas undefined nem apenas string, apesar de serem ambos tipos potenciais.mathematician pode ser undefined ou string. Este tipo de "ou ou" é chamado de união. Os tipos de união são um conceito maravilhoso que nos permite lidar com casos de código em que não sabemos exatamente que tipo é um valor, mas sabemos que é uma de duas ou mais opções.
O Typescript representa tipos de união usando o operador | (pipe) entre os valores possíveis, ou constituintes ...