Sumário
- O Livro Conciso de TypeScript
- Traduções
- Downloads e site
- Sumário
- Introdução
- Sobre o Autor
- Introdução ao TypeScript
- O que é TypeScript?
- Por que TypeScript?
- TypeScript e JavaScript
- Geração de Código TypeScript
- JavaScript Moderno Agora (Downleveling)
- Começando com TypeScript
- Instalação
- Configuração
- Arquivo de Configuração do TypeScript
- target
- lib
- strict
- module
- moduleResolution
- esModuleInterop
- jsx
- skipLibCheck
- files
- include
- exclude
- importHelpers
- Conselhos para Migração para TypeScript
- Explorando o Sistema de Tipos
- O Serviço de Linguagem do TypeScript
- Tipagem Estrutural
- Regras Fundamentais de Comparação do TypeScript
- Tipos como Conjuntos
- Atribuir um tipo: Declarações de Tipo e Asserções de Tipo
- Declaração de Tipo
- Asserção de Tipo
- Declarações de Ambiente (Ambient Declarations)
- Verificação de Propriedades e Verificação de Excesso de Propriedades
- Tipos Fracos (Weak Types)
- Verificação Estrita de Objeto Literal (Freshness)
- Inferência de Tipo
- Inferências Mais Avançadas
- Alargamento de Tipo (Type Widening)
- Const
- Modificador Const em Parâmetros de Tipo
- Asserção Const
- Anotação de Tipo Explícita
- Estreitamento de Tipo (Type Narrowing)
- Condições
- Lançando ou retornando
- União Discriminada
- Proteções de Tipo Definidas pelo Usuário (User-Defined Type Guards)
- Tipos Primitivos
- string
- boolean
- number
- bigInt
- Symbol
- null e undefined
- Array
- any
- Anotações de Tipo
- Propriedades Opcionais
- Propriedades Somente Leitura (Readonly)
- Assinaturas de Índice (Index Signatures)
- Estendendo Tipos
- Tipos Literais
- Inferência Literal
- strictNullChecks
- Enums
- Enums numéricos
- Enums de string
- Enums constantes
- Mapeamento reverso
- Enums de ambiente
- Membros computados e constantes
- Estreitamento (Narrowing)
- typeof type guards
- Estreitamento de veracidade (Truthiness narrowing)
- Estreitamento de igualdade (Equality narrowing)
- Estreitamento com operador In
- Estreitamento com instanceof
- Atribuições
- Análise de Fluxo de Controle
- Predicados de Tipo
- Uniões Discriminadas
- O tipo never
- Verificação de exaustividade
- Tipos de Objeto
- Tipo Tupla (Anônimo)
- Tipo Tupla Nomeado (Rotulado)
- Tupla de Comprimento Fixo
- Tipo União
- Tipos de Interseção
- Indexação de Tipo
- Tipo a partir de Valor
- Tipo a partir de Retorno de Função
- Tipo a partir de Módulo
- Tipos Mapeados
- Modificadores de Tipos Mapeados
- Tipos Condicionais
- Tipos Condicionais Distributivos
- Inferência de tipo infer em Tipos Condicionais
- Tipos Condicionais Predefinidos
- Tipos de União de Template
- Tipo Any
- Tipo Unknown
- Tipo Void
- Tipo Never
- Interface e Tipo
- Sintaxe Comum
- Tipos Básicos
- Objetos e Interfaces
- Tipos União e Interseção
- Primitivos de Tipo Integrados
- Objetos JS Integrados Comuns
- Sobrecargas
- Mesclagem e Extensão
- Diferenças entre Type e Interface
- Classe
- Sintaxe Comum de Classe
- Construtor
- Construtores Privados e Protegidos
- Modificadores de Acesso
- Get e Set
- Auto-Accessors em Classes
- this
- Propriedades de Parâmetro
- Classes Abstratas
- Com Genéricos
- Decoradores
- Decoradores de Classe
- Decorador de Propriedade
- Decorador de Método
- Decoradores de Getter e Setter
- Metadados de Decorador
- Herança
- Estáticos
- Inicialização de propriedade
- Sobrecarga de método
- Genéricos
- Tipo Genérico
- Classes Genéricas
- Restrições Genéricas
- Estreitamento contextual genérico
- Tipos Estruturais Apagados (Erased Structural Types)
- Namespacing
- Símbolos
- Diretivas de Barra Tripla
- Manipulação de Tipos
- Criando Tipos a partir de Tipos
- Tipos de Acesso Indexado
- Tipos Utilitários
- Awaited<T>
- Partial<T>
- Required<T>
- Readonly<T>
- Record<K, T>
- Pick<T, K>
- Omit<T, K>
- Exclude<T, U>
- Extract<T, U>
- NonNullable<T>
- Parameters<T>
- ConstructorParameters<T>
- ReturnType<T>
- InstanceType<T>
- ThisParameterType<T>
- OmitThisParameter<T>
- ThisType<T>
- Uppercase<T>
- Lowercase<T>
- Capitalize<T>
- Uncapitalize<T>
- NoInfer<T>
- Outros
- Tratamento de Erros e Exceções
- Classes Mixin
- Recursos de Linguagem Assíncronos
- Iteradores e Geradores
- Referência JSDoc TsDocs
- @types
- JSX
- Módulos ES6
- Operador de Exponenciação ES7
- A instrução for-await-of
- Nova meta-propriedade target
- Expressões de Importação Dinâmica
- ”tsc –watch”
- Operador de Asserção Não-nula
- Declarações padronizadas
- Encadeamento Opcional (Optional Chaining)
- Operador de coalescência nula
- Tipos de Literais de Template
- Sobrecarga de função
- Tipos Recursivos
- Tipos Condicionais Recursivos
- Suporte a Módulo ECMAScript no Node
- Funções de Asserção
- Tipos de Tupla Variádicos
- Tipos Boxed
- Covariância e Contravariância no TypeScript
- Anotações de Variância Opcionais para Parâmetros de Tipo
- Assinaturas de Índice de Padrão de String de Template
- O Operador satisfies
- Importações e Exportações Apenas de Tipo
- Declaração using e Gerenciamento Explícito de Recursos
- Declaração await using
- Atributos de Importação