O Tipo 'unknown'
Parte da seção Introdução ao TypeScript do Journey de JavaScript da Coddy. Lição 8 de 73.
Como any, uma variável do tipo unknown pode conter qualquer valor:
let userInput: unknown = "Hello";
userInput = 42; // Sem erro
userInput = true; // Sem erroA principal diferença é que o TypeScript não permitirá que você realize operações em um valor unknown sem antes verificar qual é o seu tipo real. Isso evita muitos erros em tempo de execução:
let data: unknown = "TypeScript";
// data.toUpperCase(); // Erro! O TypeScript não sabe que é uma string
// Você deve verificar o tipo primeiro
if (typeof data === "string") {
console.log(data.toUpperCase()); // Agora é seguro!
}Isso torna o unknown muito mais seguro do que o any porque força você a verificar o tipo antes de usar métodos ou propriedades específicos do tipo.
Desafio
FácilCrie uma variável chamada userInput com o tipo unknown e atribua a ela a string "TypeScript".
Em seguida, escreva um guard de tipo usando typeof para verificar se userInput é uma string. Se for uma string, imprima a versão em maiúsculas da string no console. Se não for uma string, imprima "Not a string" no console.
Isso demonstra como unknown exige uma verificação de tipo antes que você possa usar com segurança métodos específicos do tipo, como toUpperCase().
Experimente você mesmo
// Cria a variável userInput com o tipo unknown
let userInput: unknown = "TypeScript";
// TODO: Escreva seu código aqui
// Use typeof para verificar se userInput é uma string
// Se for uma string, imprima a versão em letras maiúsculas
// Se não for uma string, imprima "Not a string"Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Introdução ao TypeScript
1Primeiros Passos com TS
O que é TypeScript?Por que usar TypeScript?Seu Primeiro Código TypeScriptProcesso de Compilação e ErrosRecapitulação: Introdução ao TS4Trabalhando com Funções
Tipagem de Parâmetros e RetornosTipagem de Arrow FunctionsO Tipo de Retorno 'void'Parâmetros Opcionais com '?'Valores Padrão de ParâmetrosTipagem de Rest ParametersDefinindo Tipos de FunçõesRecapitulação: Criando Funções Tipadas2Tipos Principais
Tipos Básicos: str, num, booleanO Tipo 'any': Válvula de EscapeO Tipo 'unknown'Trabalhando com 'null' e 'undef'Inferência de Tipo na PráticaAnotações de Tipo ExplícitasRecapitulação: Prática de Tipos Principais5Tipos: Aliases, Uniões e Interseções
Aliases de Tipos para PrimitivosTipos de União ('|')Trabalhando com Tipos de UniãoTipos LiteraisTipos de Interseção ('&')Combinando Aliases de TiposRecapitulação: Combinações Avançadas de Tipos3Estrutura de Dados: Arrays e Tuplas
Arrays TipadosModificador 'readonly' para ArraysO que é uma Tupla?Declarando e Acessando TuplasDesestruturando TuplasTuplas ReadonlyArrays Tipados MultidimensionaisSpread Operator com ArraysRecapitulação: Arrays e TuplasPratique por conta própria: Playground de TypeScript