TypeScript 7.1 베타 버전이 발표되었습니다. 이번 업데이트는 주로 두 가지 주요 기능을 포함하고 있습니다. 첫 번째는 환경 모듈에서 import attributes를 지원하는 것입니다. 이를 통해 개발자는 파일의 형식에 따라 런타임이 어떻게 해당 파일을 해석해야 하는지를 명시할 수 있습니다. 두 번째는 ECMAScript의 새로운 기능인 source phase imports를 도입하여 모듈을 로드하기 전에 런타임에서 모듈을 분석할 수 있는 기능을 제공합니다. 이러한 변화는 TypeScript의 사용성을 높이고, 다양한 파일 형식에 대한 지원을 강화하며, 개발자들이 보다 효율적으로 작업할 수 있도록 돕습니다.
TypeScript 7.1에서는 import attributes를 통해 개발자가 파일을 가져올 때 해당 파일의 형식을 명시할 수 있습니다. 예를 들어, JSON 파일을 가져올 때 with { type: "json" }을 추가함으로써 런타임이 해당 파일을 JSON으로 해석하도록 지시할 수 있습니다. 이는 기존의 파일 확장자에 의존하는 방식에서 벗어나, 런타임이 실제로 어떤 형식으로 파일을 처리해야 하는지를 명확히 할 수 있게 해줍니다.
기존에는 TypeScript에서 ambient module declarations를 사용하여 파일 형식을 선언했지만, import attributes를 지원함으로써 런타임 환경에 따라 다르게 동작할 수 있는 유연성을 제공합니다. 예를 들어, CSS 파일을 가져올 때 with { type: "css" }를 사용하면 해당 파일이 CSSStyleSheet 객체로 처리되도록 보장할 수 있습니다. 이는 파일 형식에 따라 다른 처리가 필요한 경우에 유용합니다.
TypeScript 7.1은 ECMAScript의 새로운 기능인 source phase imports를 도입했습니다. 이 기능은 import 문 다음에 source 키워드를 사용하여 모듈을 가져올 때, 해당 모듈이 런타임에 의해 분석된 후 로드되도록 합니다. 이를 통해 개발자는 WebAssembly와 같은 특정 형식의 모듈을 보다 쉽게 다룰 수 있습니다. 예를 들어, WebAssembly 모듈을 가져올 때 import source를 사용하면 해당 모듈을 WebAssembly.instantiate에 직접 전달할 수 있습니다.
이 기능은 JavaScript 파일에 대해서는 아직 많은 기능이 지원되지 않지만, 향후 JavaScript 모듈 소스를 import() 호출에 직접 전달할 수 있는 가능성을 열어줍니다. 이는 모듈 로딩 및 인스턴스화 방식을 사용자 정의할 수 있는 더 많은 기능을 제공할 것으로 기대됩니다.
TypeScript 7.1은 새로운 API를 도입하여 개발자들이 TypeScript의 구문 및 의미 분석을 활용하여 강력한 도구와 유틸리티를 구축할 수 있도록 지원합니다. API는 여러 진입점으로 구성되어 있어, 각각의 목적에 맞게 사용할 수 있습니다. 예를 들어, typescript/sync는 동기식 컴파일러 클라이언트를 제공하며, typescript/async는 Promise 기반의 동등한 클라이언트를 제공합니다. 이러한 구조는 TypeScript의 기능을 보다 유연하게 활용할 수 있게 해줍니다.
TypeScript 7.1은 메모리 사용량을 줄이고 빌드 속도를 높이기 위한 다양한 최적화를 포함하고 있습니다. 이러한 최적화는 코드베이스의 빌드 성능을 크게 향상시킬 수 있으며, 특히 대규모 프로젝트에서 더욱 두드러진 효과를 볼 수 있습니다.
이러한 변화는 TypeScript를 사용하는 개발자들에게 더 나은 개발 경험을 제공하고, 다양한 파일 형식과 모듈을 보다 효율적으로 처리할 수 있는 기반을 마련합니다. TypeScript 7.1은 이러한 기능들을 통해 개발자들이 더 나은 품질의 코드를 작성할 수 있도록 지원하고 있습니다.