unknown Tipo unknown

Última atualização: 2026-10-22

unknown Tipo unknown

unknown é o any seguro: qualquer valor pode ser atribuído a ele, mas deve ser estreitado ou assertado antes do uso. O tipo preferido para entrada externa (respostas de API, resultados de JSON.parse).

GrupoTipos Básicos
TipoTipo
Modo strictNão necessário

ℹ️ Info O editor transpila TypeScript para JavaScript e o executa (sem verificação de tipos); veja a Saída de cada exemplo para o resultado da verificação.

📝 Sintaxe

let value: unknown = JSON.parse(text);
if (typeof value === "string") {
  value.trim(); // só é possível chamar métodos após estreitar
}

⚙️ Parâmetros

typeof x === "string"Verificações como typeof x === "string" estreitam unknown para um tipo concreto

Retorno:Nenhum valor de retorno — unknown é uma anotação de tipo e não produz código em tempo de execução.

▶ Exemplo

Edite o código abaixo e clique em Testar para ver o resultado transpilado:

Saída:

hi
2.5
unsupported

(Saída de execução após a transpilação; chamar value.trim() sem estreitamento é um erro de compilação — essa é justamente a proteção do unknown)

💡 Observações

ℹ️ Info A atribuibilidade é a diferença-chave: unknown flui apenas para unknown/any, enquanto any flui para todo lugar — assim unknown não propaga insegurança.
💡 Dica Ferramentas comuns de estreitamento: typeof (primitivos), instanceof (instâncias de classes), in (presença de propriedade), Array.isArray.
⚠️ Atenção O estreitamento prova a suposição de tipo, não a forma dos dados; valide JSON externo com uma biblioteca de schema como zod.
Mais casos em breve.

📚 Tutoriais relacionados

❓ Perguntas frequentes

P Devo escolher unknown ou any?
R Prefira unknown por padrão: ele força você a confirmar o tipo antes do uso, expondo erros em tempo de compilação. any é uma ferramenta temporária para protótipos ou migração de código legado.
P Como transformar unknown em um tipo concreto?
R Duas formas: estreitamento (typeof/instanceof/in, rastreado automaticamente) ou uma asserção value as T (você dá garantia). Prefira estreitamento; asseste com parcimônia.
P Qual é o tipo de retorno de JSON.parse?
R A assinatura da lib diz any. O mais seguro é envolver: function safeParse(text: string): unknown { return JSON.parse(text); } e validar com um schema.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%