개발자

타입스크립트 4.7 출시…“노드.js 16용 ESM 지원”

Paul Krill | InfoWorld 2022.05.31
‘타입스크립트 4.7(TypeScript 4.7)’이 프로덕션 릴리즈로 출시됐다. 마이크로소프트가 자바스크립트에 정적 타입 문법을 추가해 만든 이 오픈소스 프로그래밍 언어의 최신 버전은 노드.js 16(Node.js 16)에 ECMA스크립트(ESM) 모듈을 지원하고, 다양한 코딩 기능을 개선했다. 
 
ⓒ Getty Images Bank

‘노드.js용 ESM 지원’은 타입스크립트 릴리즈에 뒤늦게 추가됐다. 작년 말 타입스크립트 4.5에서 계획돼 있었으나 이번 릴리즈로 연기돼, 지난 4월 8일 공개된 타입스크립트 4.7 베타에서 노드.js 12용 ESM 지원이 포함됐다. 하지만 노드.js 12가 더 이상 지원되지 않아 타입스크립트 개발팀은 노드.js 16에서 스테이블 버전을 시작했다. 이는 패턴 트레일러 등의 ECMA스크립트 모듈 기능을 제공할 뿐만 아니라 타입스크립트를 최상위 await를 지원하는 상위 타깃으로 기본 설정한다. 

노드.js용 ECMA스크립트 모듈 지원 기능의 나이틀리 버전은 타입스크립트 4.5 릴리즈 기간 동안 재출시됐다. 이 모듈을 사용하면 패키징을 통해 코드를 재사용할 수 있다. 개발팀에 따르면 노드.js가 다른 모듈 시스템인 커먼JS(CommonJS)에 구축된 탓에 이를 지원하기가 어려웠다. 타입스크립트 4.7은 노드16(node16)과 노드넥스트(nodenext)라는 2가지 모듈 설정으로 이 기능을 추가한다. 타입스크립트 4.7은 누겟(NuGet) 또는 NPM(npm install -D typescript)을 통해 다운로드할 수 있다. 이 밖에 타입스크립트 4.7의 다른 기능은 아래와 같다. 
 
  • 인덱싱된 키가 리터럴 유형 및 고유 기호일 때, 괄호로 묶인 요소 액세스의 제어 흐름 분석은 이제 요소 액세스 유형을 좁힌다. 
  • 타입스크립트 4.7에는 모듈 탐지를 제어하기 위한 moduleDetection 옵션이 적용됐다. 
  • 모듈 지정자의 룩업을 사용자 정의하는 moduleSuffixes 옵션이 지원된다. 
  • 함수에서 객체 및 배열을 사용하여 더 세분화된 추론을 할 수 있다. 이러한 함수의 유형은 일반 인수와 마찬가지로 왼쪽에서 오른쪽으로 일관되게 흐를 수 있다고 개발팀은 설명했다. 
  • 함수 및 생성자에 유형 인수를 직접 입력할 수 있다.
  • 개발자는 유형 매개변수의 분산을 명시적으로 지정할 수 있다.
  • 가져오기 구성이 그룹 인식 방식으로 수행된다. 
  • 객체 리터럴 메소드에 조각 완성이 제공된다.
  • 이제 읽기 전용 튜플은 길이 속성을 읽기 전용으로 취급한다(이는 획기적인 변화다).
  • 소스 정의로 이동(Go to Source Definition)에 미리보기 편집기 명령이 지원된다. 
  • JSX에서 …spread를 작성할 때 주어진 유형이 실제 객체인지 더 엄격한 검사를 시행한다. 그 결과 unknownnever, 드물게는 null undefined 유형의 값은 더 이상 JSX 요소로 확산되지 않는다. 

한편 베타 이후 타입스크립트 개발팀은 이번 릴리즈에서 계획된 #private 필드의 typeof 기능에 API 호환성 문제가 있다는 사실을 발견했다. 아울러 typeof this.#somePrivate가 선언 방출 시 제대로 구성되지 않는 문제도 확인했다. 결과적으로 이 기능은 타입스크립트 4.7에서 제외됐다.
ciokr@idg.co.kr
 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.