TypeScript 5.0 베타 주요 변경사항 정리
배경
2월 초 TypeScript 5.0 베타가 릴리즈되었다. 메이저 버전 업데이트인 만큼 몇 가지 주목할 변경사항이 있어 정리해둔다.
주요 변경사항
1. 데코레이터 표준화
기존 experimental 데코레이터 대신 Stage 3 표준 데코레이터를 지원한다. experimentalDecorators 플래그 없이 사용 가능해졌다.
function logged(value: any, context: ClassMethodDecoratorContext) {
const methodName = String(context.name);
return function(this: any, ...args: any[]) {
console.log(`Calling ${methodName}`);
return value.call(this, ...args);
};
}
class Calculator {
@logged
add(a: number, b: number) {
return a + b;
}
}
당장은 기존 라이브러리와의 호환성 때문에 마이그레이션이 쉽지 않을 것 같다. NestJS나 TypeORM 같은 프레임워크들이 업데이트될 때까지는 기존 방식을 유지해야 할 듯하다.
2. Enum 개선
모든 enum이 union enum으로 처리되어 타입 체킹이 더 정확해졌다. 이전에는 computed member가 있으면 union으로 동작하지 않았는데 이제는 가능하다.
3. 성능 개선
번들 사이즈 감소와 컴파일 속도 향상이 있다고 한다. 공식 블로그에서는 10-20% 향상되었다고 하는데, 우리 프로젝트에서도 체감될지는 정식 릴리즈 후 확인해봐야겠다.
마이그레이션 계획
당장 업그레이드하기보단 정식 릴리즈 후 한두 달 지켜보고 진행할 예정이다. 특히 데코레이터 관련해서는 사용 중인 라이브러리들의 대응 상황을 먼저 확인해야 한다.