Visão Geral do TypeScript 5
O TypeScript 5 é um lançamento major com melhorias significativas de performance e novas funcionalidades. Inclui melhorias na velocidade de build, nova sintaxe de decorators e fortalecimento do sistema de tipos.
Suporte Oficial a Decorators
A nova sintaxe de decorators em conformidade com a proposta de decorators do ECMAScript (Stage 3) está disponível.
function logged(originalMethod: any, context: ClassMethodDecoratorContext) {
const methodName = String(context.name);
return function (this: any, ...args: any[]) {
console.log(`Calling ${methodName} with`, args);
const result = originalMethod.call(this, ...args);
console.log(`${methodName} returned`, result);
return result;
};
}
class Calculator {
@logged
add(a: number, b: number): number {
return a + b;
}
}
Diferença da versão anterior: A flag
experimentalDecoratorsnão é mais necessária, e os novos decorators padrão podem ser utilizados.
Parâmetros de Tipo const
Agora é mais fácil inferir tipos literais.
// Antes
function getConfig<T extends readonly string[]>(items: T): T {
return items;
}
const config = getConfig(['a', 'b', 'c'] as const);
// TypeScript 5
function getConfig<const T extends readonly string[]>(items: T): T {
return items;
}
const config = getConfig(['a', 'b', 'c']); // as const desnecessário
// Tipo: readonly ['a', 'b', 'c']
Melhorias de Performance
O TypeScript 5 alcançou uma aceleração significativa através da otimização da estrutura interna.
| Item | Taxa de Melhoria |
|---|---|
| Velocidade de build | 10-25% mais rápido |
| Tamanho do pacote | ~50% redução |
| Uso de memória | Reduzido |
Outras Novas Funcionalidades
Todos os enums são agora tipos de união
enum Color {
Red,
Green,
Blue
}
// O tipo Color é tratado como Color.Red | Color.Green | Color.Blue
moduleResolution: bundler
Uma nova estratégia de resolução de módulos para bundlers modernos foi adicionada.
{
"compilerOptions": {
"moduleResolution": "bundler"
}
}
Pontos-chave da Migração
- Recomendado
target: ES2022ou superior - Considere migrar para os novos decorators
- Utilize
moduleResolution: bundler
Resumo
O TypeScript 5 é um lançamento que equilibra melhoria na experiência do desenvolvedor e ganhos de performance. Com a nova sintaxe de decorators e parâmetros de tipo const, é possível escrever código mais type-safe e expressivo.
← Voltar para a lista