Objetos tipados e propriedades opcionais
Em TypeScript, a tipagem de objetos começa com a definição explícita da estrutura que um objeto deve seguir. A forma mais básica é o tipo literal de objeto:
Categoria
Em TypeScript, a tipagem de objetos começa com a definição explícita da estrutura que um objeto deve seguir. A forma mais básica é o tipo literal de objeto:
Migrar um projeto inteiro de JavaScript para TypeScript de uma só vez é uma tarefa assustadora e, na maioria dos casos, desnecessária. A abordagem incremental permite que sua equipe continue entregando valor enquanto adota os benefícios do TypeScript aos poucos. Os principais ganhos incluem: detecção precoce de erros, melhor documentação do código através de tipos, e um ambiente de desenvolvimento mais produtivo com autocompletar e refatorações seguras.
Mixins são um padrão de design que permite reutilizar comportamentos entre classes sem herança múltipla. Em TypeScript, mixins combinam funcionalidades de múltiplas fontes em uma única classe, resolvendo a limitação da herança única do JavaScript.
Module augmentation é um recurso do TypeScript que permite estender declarações de tipos existentes em módulos de terceiros sem modificar o código original da biblioteca. Em vez de criar definições de tipo paralelas ou recorrer a any, você pode adicionar propriedades, métodos ou sobrescrever comportamentos tipados de forma segura.
Módulos no TypeScript representam a forma moderna de organizar e compartilhar código entre arquivos. Diferentemente de scripts tradicionais, módulos possuem seu próprio escopo, evitando poluição do escopo global e permitindo controle explícito sobre o que é exposto ou consumido externamente.
A importação estática (import) é a forma tradicional de carregar módulos em TypeScript, onde todos os módulos são resolvidos em tempo de compilação. Já a importação dinâmica (import()) permite carregar módulos sob demanda, em tempo de execução. O TypeScript infere o tipo do retorno de import() como Promise<typeof module>, o que significa que você obtém um objeto contendo todas as exportações do módulo.
Mapped types são uma funcionalidade poderosa do TypeScript que permite criar novos tipos a partir de tipos existentes, transformando suas propriedades de forma sistemática. Enquanto tipos genéricos permitem parametrizar tipos com variáveis, mapped types permitem iterar sobre as chaves de um tipo e aplicar transformações em cada propriedade.
O TypeScript é um superset do JavaScript que adiciona tipagem estática e outros recursos poderosos à linguagem. Para começar a utilizá-lo, é essencial instalar e configurar corretamente o compilador tsc. Este artigo guiará você por todo o processo, desde a instalação dos pré-requisitos até as boas práticas de configuração para projetos reais.
O TypeScript 4.1 introduziu quatro tipos intrínsecos (intrinsic types) para manipulação de strings em nível de tipo: Uppercase<T>, Lowercase<T>, Capitalize<T> e Uncapitalize<T>. Esses tipos operam exclusivamente em tipos literais de string durante a compilação, permitindo transformações tipográficas sem custo em runtime.
Inversion of Control (IoC) é um princípio onde o fluxo de controle de um programa é invertido: em vez de um componente criar e gerenciar suas próprias dependências, ele recebe essas dependências de uma fonte externa. Em TypeScript, isso significa que as classes não instanciam diretamente seus colaboradores, mas os recebem prontos.