Tipos Primitivos
O TypeScript suporta 7 tipos primitivos. Um tipo de dado primitivo refere-se a um tipo que não é um objeto e não possui métodos associados a ele. No TypeScript, todos os tipos primitivos são imutáveis, o que significa que seus valores não podem ser alterados uma vez atribuídos.
string
O tipo primitivo string armazena dados textuais, e o valor é sempre entre aspas duplas ou simples.
const x: string = 'x';const y: string = 'y';Strings podem abranger múltiplas linhas se cercadas pelo caractere de crase (`):
let sentence: string = `xxx, yyy`;boolean
O tipo de dado boolean no TypeScript armazena um valor binário, seja true ou false.
const isReady: boolean = true;number
Um tipo de dado number no TypeScript é representado com um valor de ponto flutuante de 64 bits. Um tipo number pode representar inteiros e frações.
O TypeScript também suporta hexadecimal, binário e octal, por exemplo:
const decimal: number = 10;const hexadecimal: number = 0xa00d; // Hexadecimal começa com 0xconst binary: number = 0b1010; // Binário começa com 0bconst octal: number = 0o633; // Octal começa com 0obigInt
Um bigInt representa valores numéricos que são muito grandes (2^53 - 1) e não podem ser representados com um number.
Um bigInt pode ser criado chamando a função integrada BigInt() ou adicionando n ao final de qualquer literal numérico inteiro:
const x: bigint = BigInt(9007199254740991);const y: bigint = 9007199254740991n;Notas:
- Valores
bigIntnão podem ser misturados comnumbere não podem ser usados comMathintegrado, eles devem ser coagidos para o mesmo tipo. - Valores
bigIntestão disponíveis apenas se a configuração target for ES2020 ou superior.
Symbol
Símbolos são identificadores únicos que podem ser usados como chaves de propriedade em objetos para evitar conflitos de nomenclatura.
type Obj = { [sym: symbol]: number;};
const a = Symbol('a');const b = Symbol('b');let obj: Obj = {};obj[a] = 123;obj[b] = 456;
console.log(obj[a]); // 123console.log(obj[b]); // 456null e undefined
Os tipos null e undefined representam nenhum valor ou a ausência de qualquer valor.
O tipo undefined significa que o valor não está atribuído ou inicializado ou indica uma ausência não intencional de valor.
O tipo null significa que sabemos que o campo não possui um valor, então o valor está indisponível, indica uma ausência intencional de valor.
Array
Um array é um tipo de dado que pode armazenar múltiplos valores do mesmo tipo ou não. Ele pode ser definido usando a seguinte sintaxe:
const x: string[] = ['a', 'b'];const y: Array<string> = ['a', 'b'];const j: Array<string | number> = ['a', 1, 'b', 2]; // UnionO TypeScript suporta arrays somente leitura usando a seguinte sintaxe:
const x: readonly string[] = ['a', 'b']; // Modificador Readonlyconst y: ReadonlyArray<string> = ['a', 'b'];const j: ReadonlyArray<string | number> = ['a', 1, 'b', 2];j.push('x'); // InválidoO TypeScript suporta tupla e tupla somente leitura:
const x: [string, number] = ['a', 1];const y: readonly [string, number] = ['a', 1];any
O tipo de dado any representa literalmente “qualquer” valor, é o valor padrão quando o TypeScript não pode inferir o tipo ou não é especificado.
Ao usar any, o compilador TypeScript pula a verificação de tipos, então não há segurança de tipos quando any está sendo usado. Geralmente não use any para silenciar o compilador quando ocorre um erro, em vez disso, concentre-se em corrigir o erro, pois com o uso de any é possível quebrar contratos e perdemos os benefícios do autocomplete do TypeScript.
O tipo any pode ser útil durante uma migração gradual de JavaScript para TypeScript, pois pode silenciar o compilador.
Para novos projetos, use a configuração TypeScript noImplicitAny que habilita o TypeScript a emitir erros onde any é usado ou inferido.
O tipo any geralmente é uma fonte de erros que pode mascarar problemas reais com seus tipos. Evite usá-lo o máximo possível.