2020.07.09

빌드 속도 개선한 '타입스크립트 4.0' 베타 공개

Paul Krill | InfoWorld
마이크로소프트가 자바스크립트의 유명 타입 수퍼셋인 타입스크립트 4.0의 베타 릴리즈를 공개했다. 시나리오를 제작, 편집하는 기능을 개선하고 베리에딕 튜플 타입을 지원한다. 개발 로드맵에 따르면, 이번 4.0의 프로덕션 버전은 8월 중에 발표될 예정이다.

이미 알려진 대로 타입스크립트 4.0은 .tsbuildinfo와 함께 디스크에 쓰는 빌더 내 시맨틱 진단 캐시를 활용해 build 모드에서의 작업 속도를 개선했다. 이에 따라 이전 컴파일에서 --incremental 오류가 발생한 후 다음 컴파일 과정에서 --noEmitOnError 플래그를 사용했을 때 속도가 매우 느려지는 오류를 바로 잡았다.

또한 새 자바스크립트/타입스크립트 기능을 통해 비주얼 스튜디오 코드와 비주얼 스튜디오 2017/1029, 서브라임 텍스트 3 등에서 시나리오 편집 작업을 개선했다. 새로 추가된 부분적 편집 모드를 이용하면 프로그램 시작 시간을 줄일 수 있는데, 특히 대형 프로젝트 작업에서 효과가 크다. 개선된 오토-임포트 기능은 package.json의 dependencies 필드에 등록된 패키지까지 포함해 에디터 시나리오에서 더 많은 작업을 지원한다. 이들 패키지의 정보를 이용해, 타입 확인 등 다른 변경 사항 없이 오토-임포트를 개선한다.

이밖에 타입스크립트 4.0의 주요 변화는 다음과 같다.
 
  • 베리에딕 튜플 타입을 이용하면 튜플 타입이 다양한 제네릭 타입의 스프레드를 가질 수 있다. 이들 제네릭 타입은 타입 예시를 통해 실제 요소로 대체할 수 있다. 이제 튜플 타입 문법에서 스프레드를 제네릭으로 설정할 수 있으므로,  운영되는 실제 타입을 알지 못해도 튜플과 어레이에서 더 높은 차원의 작업을 표현할 수 있다. 또한 스프레드 요소는 튜플의 끝이 아니라 어디에서는 실행이 가능하다. 버전 4.0에서는 나머지 파라미터와 튜플 요소에 대한 추론 프로세스도 개선했다. 특히 베리에딕 튜플 타임은 함수 구성 관련해서 새 패턴을 사용할 수 있다.
  • 튜플 타입은 라벨을 지원해 사용성이 개선됐다. 
  • noImplicitAny를 활성화하면 컨트롤 플로어 애널리시스를 클래스의 속성 타입을 결정하는 데 사용할 수 있다.
  • &&=, ||=, ??= 등 3가지 새 할당 연산자를 추가해 코딩을 지원한다.
  • catch절 변수 타입을 unknown으로 설정할 수 있게 됐다. unknown을 이용하면 개발자가 값을 처리하기 전에 타입을 체크할 수 있어 any보다 안전하다.
  • JSX 팩토리의 경우 사용자가 새로운 jsxFragmentFactory 옵션을 이용해 프레그먼트 팩토리를 맞춤화할 수 있다. 프레그먼트는 다중 상속 요소를 반환하는 JSX 요소의 타입이다. 
  • 더는 지원하지 않는 기능도 있다. 먼저 delete를 위한 피연산함수가 반드시 선택적이어야 한다. 또한 타입스크립트 노드 팩토리 사용도 제한된다.

타입스크립트 4.0 베타는 NuGet에서 다운로드할 수 있다. 또는 NPM에서 npm install typescript@beta 명령을 실행하면 된다. 타입스크립트 4.0의 이전 버전인 3.9는 지난 5월에 발표됐다. editor@itworld.co.kr


2020.07.09

빌드 속도 개선한 '타입스크립트 4.0' 베타 공개

Paul Krill | InfoWorld
마이크로소프트가 자바스크립트의 유명 타입 수퍼셋인 타입스크립트 4.0의 베타 릴리즈를 공개했다. 시나리오를 제작, 편집하는 기능을 개선하고 베리에딕 튜플 타입을 지원한다. 개발 로드맵에 따르면, 이번 4.0의 프로덕션 버전은 8월 중에 발표될 예정이다.

이미 알려진 대로 타입스크립트 4.0은 .tsbuildinfo와 함께 디스크에 쓰는 빌더 내 시맨틱 진단 캐시를 활용해 build 모드에서의 작업 속도를 개선했다. 이에 따라 이전 컴파일에서 --incremental 오류가 발생한 후 다음 컴파일 과정에서 --noEmitOnError 플래그를 사용했을 때 속도가 매우 느려지는 오류를 바로 잡았다.

또한 새 자바스크립트/타입스크립트 기능을 통해 비주얼 스튜디오 코드와 비주얼 스튜디오 2017/1029, 서브라임 텍스트 3 등에서 시나리오 편집 작업을 개선했다. 새로 추가된 부분적 편집 모드를 이용하면 프로그램 시작 시간을 줄일 수 있는데, 특히 대형 프로젝트 작업에서 효과가 크다. 개선된 오토-임포트 기능은 package.json의 dependencies 필드에 등록된 패키지까지 포함해 에디터 시나리오에서 더 많은 작업을 지원한다. 이들 패키지의 정보를 이용해, 타입 확인 등 다른 변경 사항 없이 오토-임포트를 개선한다.

이밖에 타입스크립트 4.0의 주요 변화는 다음과 같다.
 
  • 베리에딕 튜플 타입을 이용하면 튜플 타입이 다양한 제네릭 타입의 스프레드를 가질 수 있다. 이들 제네릭 타입은 타입 예시를 통해 실제 요소로 대체할 수 있다. 이제 튜플 타입 문법에서 스프레드를 제네릭으로 설정할 수 있으므로,  운영되는 실제 타입을 알지 못해도 튜플과 어레이에서 더 높은 차원의 작업을 표현할 수 있다. 또한 스프레드 요소는 튜플의 끝이 아니라 어디에서는 실행이 가능하다. 버전 4.0에서는 나머지 파라미터와 튜플 요소에 대한 추론 프로세스도 개선했다. 특히 베리에딕 튜플 타임은 함수 구성 관련해서 새 패턴을 사용할 수 있다.
  • 튜플 타입은 라벨을 지원해 사용성이 개선됐다. 
  • noImplicitAny를 활성화하면 컨트롤 플로어 애널리시스를 클래스의 속성 타입을 결정하는 데 사용할 수 있다.
  • &&=, ||=, ??= 등 3가지 새 할당 연산자를 추가해 코딩을 지원한다.
  • catch절 변수 타입을 unknown으로 설정할 수 있게 됐다. unknown을 이용하면 개발자가 값을 처리하기 전에 타입을 체크할 수 있어 any보다 안전하다.
  • JSX 팩토리의 경우 사용자가 새로운 jsxFragmentFactory 옵션을 이용해 프레그먼트 팩토리를 맞춤화할 수 있다. 프레그먼트는 다중 상속 요소를 반환하는 JSX 요소의 타입이다. 
  • 더는 지원하지 않는 기능도 있다. 먼저 delete를 위한 피연산함수가 반드시 선택적이어야 한다. 또한 타입스크립트 노드 팩토리 사용도 제한된다.

타입스크립트 4.0 베타는 NuGet에서 다운로드할 수 있다. 또는 NPM에서 npm install typescript@beta 명령을 실행하면 된다. 타입스크립트 4.0의 이전 버전인 3.9는 지난 5월에 발표됐다. editor@itworld.co.kr


X