Tipos de dados do TypeScript: a referência completa

Tipos de dados do TypeScript

Tipos de dados do TypeScript: todos os tipos em uma tabela pesquisável | We.Inc

string, number, boolean, bigint, symbol, null, undefined, any, unknown, never, void, object, arrays, tuplas, enums, literais e unions, com um exemplo de cada.

Os tipos de dados básicos do TypeScript são os sete primitivos do JavaScript, string, number, bigint, boolean, symbol, null e undefined, escritos em minúsculas. Por cima deles, a linguagem adiciona tipos especiais (any, unknown, never, void, object), estruturas como arrays, tuplas e enums, e formas de combinar tipos: literal types, unions e intersections.

Os quatro grupos

Pesquise a referência pelo nome ou filtre por grupo. Cada linha tem um exemplo de uma linha que você pode colar em um arquivo .ts, e a coluna de notas destaca o comportamento que costuma confundir, como a diferença entre void e undefined ou por que unknown é mais seguro que any.

Perguntas frequentes

Quantos tipos primitivos o TypeScript tem?

Sete, os mesmos do JavaScript: string, number, bigint, boolean, symbol, null e undefined. number cobre tanto inteiros quanto decimais; não existe um tipo int ou float separado.

Qual é a diferença entre any e unknown?

Os dois aceitam qualquer valor. any deixa você fazer qualquer coisa com ele, então os erros passam em silêncio. unknown não deixa fazer nada até você estreitá-lo com uma verificação como typeof, o que o torna a escolha segura para dados não confiáveis.

Para que serve o tipo never?

never descreve valores que não podem ocorrer: o tipo de retorno de uma função que sempre lança erro, e o que sobra de uma union depois que todos os membros foram tratados. Esse segundo uso é o que viabiliza as verificações de exaustividade.

void é o mesmo que undefined?

Não. void é o tipo de retorno de uma função cujo valor de retorno deve ser ignorado. Uma função tipada como retornando void pode receber um callback que retorna algo, enquanto undefined significa que o valor é de fato undefined.

Qual é a diferença entre object, Object e {}?

object significa qualquer valor não primitivo, como objetos, arrays e funções. {} significa qualquer valor exceto null e undefined, primitivos incluídos. O tipo global Object raramente é útil; prefira object ou um tipo de objeto específico.

Primitivos: o que o typeof informa

Tipos especiais marcam os extremos

Combinando tipos

De unknown para um tipo utilizável

Estreite entradas não confiáveis passo a passo

Cada verificação elimina possibilidades. Dentro do último branch o compilador sabe que value é uma string.

never como verificação de exaustividade

Se um novo status entrar na union, a atribuição a never deixa de compilar até que um case seja adicionado para ele.

Texto de qualquer tamanho. Template literals também são strings.

Inteiros e decimais, incluindo NaN e Infinity.

Números inteiros além da faixa de inteiros seguros. O sufixo n precisa de um target ES2020.

Só true ou false.

Cada chamada a Symbol() cria um valor único.

Com strictNullChecks ligado, null precisa estar listado no tipo para ser permitido.

O valor de uma variável declarada mas não atribuída e de uma propriedade opcional ausente.

Desliga a verificação para o valor. noImplicitAny aponta os lugares onde ele aparece sem aviso.

Aceita qualquer valor, mas não permite nada até você estreitá-lo.

Nenhum valor jamais tem este tipo: funções que sempre lançam erro e unions sem nada restante.

Um valor de retorno que deve ser ignorado. Não é o mesmo que undefined.

Qualquer não primitivo: objetos, arrays e funções.

Array

string[] e Array<string> significam a mesma coisa.

Array readonly

Igual a ReadonlyArray<number>. push e outros métodos que alteram o array são removidos.

Tupla

Tamanho fixo com um tipo por posição. Elementos opcionais vão no final: [number, number?].

Gera um objeto real em tempo de execução, ao contrário da maior parte da sintaxe do TypeScript.

Tipo de objeto

Descreve propriedades inline. Dê um nome com type ou interface para reutilizar.

Tipo de função

Tipos dos parâmetros e do retorno. Prefira isso ao tipo genérico Function.

Literal type

Valores exatos em vez do primitivo inteiro.

Union

Um entre vários tipos. Estreite com typeof, in ou um campo em comum antes de usar os membros.

Intersection

Todos os tipos ao mesmo tempo. Usada principalmente para juntar tipos de objeto.

Primitivos

Especiais

Estruturas

Combinações

Referência de tipos pesquisável

Pesquisar tipos

unknown, tupla, null...

Filtrar por grupo

Todos

Mostrando {n} de {v} tipos

Nenhum tipo corresponde a essa busca.

Tipos do TypeScript com exemplos

Tipo

Grupo

Exemplo

Nota

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site