Aprendendo TypeScript

Melhore suas habilidades de desenvolvimento web usando JavaScript Type-Safe

Aprendendo TypeScript
× Aprendendo TypeScript

Aprendendo TypeScript

VER AMOSTRA

Autor:

ISBN impresso: 978-65-86057-99-7
ISBN ebook: 978-85-7522-830-2
Ano: 2022
Páginas: 336
Preço impresso: R$ 97,00 O ebook deste livro está disponível na Amazon.

Opine sobre este livro

Descrição do livro

O TypeScript conquistou o universo JavaScript. Identificado em pesquisas com desenvolvedores como uma das linguagens de crescimento mais rápido e mais populares do mundo, o TypeScript é amplamente usado em empresas voltadas para o consumidor, assim como para outros tipos de negócios em todo o planeta e é frequentemente considerado responsável por ajudar no desenvolvimento de aplicações web em larga escala. No entanto, na verdade, o que é TypeScript? Como e por que ele funciona e como podemos usá-lo?

Este livro prático levará programadores JavaScript iniciantes e avançados do nível de desconhecimento dos “tipos” ou “sistemas de tipos” ao domínio total dos aspectos básicos do TypeScript.

Você aprenderá:

• Os benefícios do TypeScript e as características gerais de seu sistema de tipos baseado no JavaScript “vanilla” (puro).

• Como fornecer ao sistema de tipos do TypeScript anotações de tipo somente no desenvolvimento.

• Como o TypeScript analisa e entende códigos para ajudar a aumentar os padrões de desenvolvimento existentes.

• Como o TypeScript o ajudará a trabalhar com arrays, classes, funções, objetos e outras estruturas internas importantes do JavaScript.

• Como usar eficientemente a grande quantidade de opções de configuração do TypeScript para personalizar o compilador TypeScript de acordo com suas equipes e projetos.

• Várias integrações com o IDE, como as refatorações automatizadas e as buscas inteligentes em código fornecidas pelo TypeScript para ajudá-lo a desenvolver rapidamente com menos bugs.

Ver menos ▲

Sumário

Sumário

  • Elogios a Aprendendo TypeScript
  • Prefácio
  • Parte I ■ Conceitos
  • Capítulo 1 ■ Do JavaScript ao TypeScript
  • História do JavaScript
  • Armadilhas do JavaScript vanilla
    • Liberdade cara
    • Documentação vaga
    • Ferramentas de desenvolvedor insatisfatórias
  • TypeScript!
  • Começando a usar o TypeScript Playground
    • O TypeScript em ação
    • Liberdade com restrições
    • Documentação precisa
    • Ferramentas de desenvolvedor mais robustas
    • Compilação da sintaxe
  • Comece localmente
    • Execução local
    • Recursos do editor
  • O que o TypeScript não é
    • Um remédio para códigos ruins
    • Extensões para JavaScript (em grande parte)
    • Mais lento do que o JavaScript
    • Término da evolução
  • Resumo
  • Capítulo 2 ■ O sistema de tipos
  • O que o tipo fornece?
    • Sistemas de tipos
    • Tipos de erros
  • Capacidade de atribuição
    • Entendendo os erros de capacidade de atribuição
  • Anotações de tipo
    • Anotações de tipo desnecessárias
  • Formas dos tipos
    • Módulos
  • Resumo
  • Capítulo 3 ■ Uniões e literais
  • Tipos união (union)
    • Declaração de tipos união
    • Propriedades da união
  • Estreitamento (narrowing)
    • Estreitamento por atribuição
    • Verificações condicionais
    • Verificações com typeof
  • Tipos literais
    • Capacidade de atribuição de literais
  • Verificação estrita de nulos
    • O erro de um bilhão de dólares
    • Estreitamento por verdades
    • Variáveis sem valores iniciais
  • Aliases de tipos
    • Os aliases de tipo não são JavaScript
    • Combinando aliases de tipo
  • Resumo
  • Capítulo 4 ■ Objetos
  • Tipos objeto
    • Declaração de tipos de objeto
    • Apelidos de tipos
  • Tipagem estrutural
    • Verificação de uso
    • Verificação de propriedades em excesso
    • Tipos de objeto aninhados
    • Propriedades opcionais
  • Uniões de tipos de objeto
    • Uniões de tipos de objeto inferidas
    • Uniões de tipos objeto explícitas
    • Estreitamento de tipos de objeto
    • Uniões discriminadas
  • Tipos interseção
    • Perigos dos tipos interseção
  • Resumo
  • Parte II ■ Recursos
  • Capítulo 5 ■ Funções
  • Parâmetros de funções
    • Parâmetros obrigatórios
    • Parâmetros opcionais
    • Parâmetros padrão
    • Parâmetros rest
  • Tipos de retorno
    • Tipos de retorno explícitos
  • Tipos função
    • Parênteses dos tipos função
    • Inferências do tipo do parâmetro
    • Apelidos de tipos função
  • Mais tipos de retono
    • Retorno void
    • Retorno never
  • Sobrecargas de funções
    • Compatibilidade das assinaturas de chamadas
  • Resumo
  • Capítulo 6 ■ Arrays
  • Tipos array
    • Tipos de array e função
    • Arrays de tipo união
    • Arrays any modificável
    • Arrays multidimensionais
  • Membros do array
    • Aviso: membros inconsistentes
  • Spreads e Rests
    • Spreads
    • Spreading de parâmetros rest
  • Tuplas
    • Capacidade de atribuição da tupla
    • Inferência de tuplas
  • Resumo
  • Capítulo 7 ■ Interfaces
  • Apelidos de tipo versus interfaces
  • Tipos de propriedades
    • Propriedades opcionais
    • Propriedades somente leitura
    • Funções e métodos
    • Assinaturas de chamadas
    • Assinaturas de índice
    • Interfaces aninhadas
  • Extensões de interfaces
    • Propriedades sobrescritas
    • Extensão de múltiplas interfaces
  • Mesclagem de interfaces
    • Conflitos de nomeação de propriedades
  • Resumo
  • Capítulo 8 ■ Classes
  • Métodos de classes
  • Propriedades de classes
    • Propriedades de função
    • Verificação de inicialização
    • Propriedades opcionais
    • Propriedades somente leitura
  • Classes como tipos
  • Classes e Interfaces
    • Implementação de múltiplas interfaces
  • Extensão de uma classe
    • Capacidade de atribuição na extensão
    • Construtores sobrescritos
    • Métodos sobrescritos
    • Propriedades sobrescritas
  • Classes abstratas
  • Visibilidade dos membros
    • Modificadores de campo static
  • Resumo
  • Capítulo 9 ■ Modificadores de tipo
  • Tipos universais
    • any, novamente
    • unknown
  • Predicados de tipo
  • Operadores de tipos
    • keyof
    • typeof
  • Asserções de tipo
    • Asserção dos tipos de erro capturados
    • Asserções de não nulo
    • Advertências para as asserções de tipo
  • Asserções const
    • Literais para primitivos
    • Objetos somente leitura
  • Resumo
  • Capítulo 10 ■ Genéricos
  • Funções genéricas
    • Chamadas com tipos genéricos explícitos
    • Múltiplos parâmetros de tipo para funções
  • Interfaces genéricas
    • Tipos inferidos de interfaces genéricas
  • Classes genéricas
    • Tipos explícitos de classes genéricas
    • Extensão de classes genéricas
    • Implementação de interfaces genéricas
    • Métodos genéricos
    • Estáticos genéricos da classe
  • Aliases de tipo genéricos
    • Uniões discriminadas genéricas
  • Modificadores de genéricos
    • Padrões genéricos
  • Tipos genéricos restritos
    • keyof e os parâmetros de tipo restritos
  • Promises
    • Criação de promises
    • Funções async
  • Uso correto dos genéricos
    • Regra de ouro dos genéricos
    • Convenções de nomeação dos genéricos
  • Resumo
  • Parte III ■ Uso
  • Capítulo 11 ■ Arquivos de declaração
  • Arquivos de declaração
  • Declaração de valores de runtime
    • Valores globais
    • Mesclagem de interface global
    • Aumentos globais
  • Declarações internas
    • Declarações de biblioteca
    • Declarações DOM
  • Declarações de módulo
    • Declarações de módulo curinga
  • Tipos de pacote
    • declaration
    • Tipos de pacote de dependências
    • Exposição de tipos de pacote
  • DefinitelyTyped
    • Disponibilidade dos tipos
  • Resumo
  • Capítulo 12 ■ Uso de recursos do IDE
  • Navegação no código
    • Busca de definições
    • Busca de referências
    • Busca de implementações
  • Criação de código
    • Preenchimento de nomes
    • Atualizações de importações automáticas
    • Códigos de ação
  • Trabalho efetivo com erros
    • Erros do serviço de linguagem
  • Resumo
  • Capítulo 13 ■ Opções de configuração
  • Opções do comando tsc
    • Modo pretty
    • Modo de observação
  • Arquivos TSConfig
    • tsc --init
    • CLI versus arquivos de configuração
  • Inclusões de arquivo
    • include
    • exclude
  • Extensões alternativas
    • Sintaxe JSX
    • resolveJsonModule
  • Emissão
    • outDir
    • target
    • Emissão de declarações
    • Mapas de fonte
    • noEmit
  • Verificação de tipos
    • lib
    • skipLibCheck
    • Modo estrito
  • Módulos
    • module
    • moduleResolution
    • Interoperabilidade com o CommonJS
    • isolatedModules
  • JavaScript
    • allowJs
    • checkJs
    • Suporte ao JSDoc
  • Extensões de configuração
    • extends
    • Bases de configuração
  • Referências de projeto
    • composite
    • references
    • Modo de build
  • Resumo
  • Parte IV ■ Material complementar
  • Capítulo 14 ■ Extensões de sintaxe
  • Propriedades de parâmetros de classe
  • Decorators experimentais
  • Enums
    • Valores numéricos automáticos
    • Enums com valores string
    • Enums const
  • Namespaces
    • Exportações de namespaces
    • Namespaces aninhados
    • Namespaces em definições de tipo
    • Prefira módulos em vez de namespaces
  • Importações e exportações somente de tipo
  • Resumo
  • Capítulo 15 ■ Operações com tipos
  • Tipos mapeados
    • Tipos mapeados a partir de outros tipos
    • Alteração de modificadores
    • Tipos mapeados genéricos
  • Tipos condicionais
    • Tipos condicionais genéricos
    • Distributividade dos tipos
    • Tipos inferidos
    • Tipos condicionais mapeados
  • never
    • never e as interseções e uniões
    • never e os tipos condicionais
    • never e os tipos mapeados
  • Tipos template literals
    • Tipos intrínsecos de manipulação de strings
    • Chaves de template literals
    • Remapeamento de chaves de tipos mapeados
  • Operações com tipos e a complexidade
  • Resumo
  • Glossário
  • Índice remissivo
Ver sumário completo ▼