TypeScript
- É um superset do JavaScript que adiciona tipagem estática ao código.
- Foi criado pela Microsoft.
- Compila para JavaScript puro e é amplamente usado em projetos de grande escala.
- Facilita a detecção precoce de erros e melhora a qualidade do código.
- Oferece suporte completo ao paradigma orientado a objetos.
Tipagem Estática e Forte
Tipagem Estática
- Os tipos são definidos e verificados em tempo de compilação, ou seja, antes da execução.
- Ajuda a evitar erros comuns em tempo de execução.
Tipagem Forte
- Impede que variáveis de tipos incompatíveis sejam utilizadas de forma indevida.
- Reduz falhas causadas por coerções automáticas de tipo.
A tipagem forte impede somar um número com uma string sem conversão explícita.
Generics
- Permitem que funções, classes e interfaces sejam escritas de forma reutilizável, mantendo a segurança de tipos.
- Oferecem flexibilidade sem abrir mão da previsibilidade do comportamento do código.
- São amplamente usados em bibliotecas e estruturas genéricas, como listas e filas.
Namespaces
- Servem para organizar o código em blocos lógicos, agrupando funções, classes e interfaces relacionadas.
- Ajudam a evitar conflitos de nomes em grandes aplicações.
- No entanto, em projetos modernos, o uso de módulos ES (ES Modules) tem substituído os namespaces.
Decorators (Decoradores)
- São anotações que modificam o comportamento de classes, métodos ou propriedades.
- Muito utilizados em frameworks como Angular para definir metadados de componentes.
- Por serem uma funcionalidade experimental, exigem ativação no compilador TypeScript.
Resumo Rápido – Características do TypeScript
Característica | Descrição |
---|---|
Tipagem Estática | Tipos verificados na compilação |
Tipagem Forte | Impede operações entre tipos incompatíveis |
Orientado a Objetos | Suporte a classes, herança, interfaces |
Genérico | Código reutilizável com múltiplos tipos |
Namespaces | Organização de código (substituídos por modules em projetos modernos) |
Decorators | Anotação e modificação de classes/métodos (feature experimental) |