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.
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.
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.
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.
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.
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.
Cada verificação elimina possibilidades. Dentro do último branch o compilador sabe que value é uma string.
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.
string[] e Array<string> significam a mesma coisa.
Igual a ReadonlyArray<number>. push e outros métodos que alteram o array são removidos.
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.
Descreve propriedades inline. Dê um nome com type ou interface para reutilizar.
Tipos dos parâmetros e do retorno. Prefira isso ao tipo genérico Function.
Valores exatos em vez do primitivo inteiro.
Um entre vários tipos. Estreite com typeof, in ou um campo em comum antes de usar os membros.
Todos os tipos ao mesmo tempo. Usada principalmente para juntar tipos de objeto.
Primitivos
Especiais
Estruturas
Combinações
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