[effective typescript] 8장

woo·2023년 3월 21일
0

Typescript

목록 보기
13/13
post-thumbnail

타입스크립트로 마이그레이션하기

아이템 58 모던 자바스크립트로 작성하기

ECMAScript 모듈과 ES2015 클래스 기능을 사용해 자바스크립트 코드를 작성해야한다.

  1. ECMAScript 모듈 사용
  2. 프로토 타입 대신 클래스
  3. let/const 사용
  4. for(;;;) 대신 for-of 또는 배열 메서드(forEach)
  5. 함수 표현식보다 화살표 함수
  6. 단축 객체표현과 구조분해할당
  7. async/await
  8. 연관 배열에 객체 대신 Map 과 Set
  9. 타입스크립트에 ‘use strict’ 넣지 않기

아이템 59 타입스크립트 도입 전에 @ts-check와 JSDoc으로 시험해보기

파일 상단에 //@ts-check를 사용하여 타입스크립트 전환시 어떤 문제가 발생하는지 미리 시험해볼 수 있다. 하지만 매우 느슨하게 체크하기에 주의해야한다.

@ts-check를 사용하면 다음과 같은 오류를 찾아낼 수 있다.

  1. 타입 불일치
  2. 함수의 매개변수 개수 불일치
  3. 선언되지 않은 전역 변수 발견
  4. 서드파티 라이브러리 타입 정보를 알 수 없는 경우
  5. DOM 문제

JSDoc 스타일의 주석을 통해서도 타입 체커가 가능하지만 최종적인 목표는 .ts파일로 변환하는 것임을 잊지 말아야한다.

PoiemaWeb


아이템 60 allowJs로 타입스크립트와 자바스크립트 같이 사용하기

타입스크립트로 마이그레이션하는 것은 점진적으로 이루어지는 작업이기 때문에 자바스크립트와 타입스크립트가 동시에 동작하기 위해서는 allowJs 컴파일러 옴션을 사용해야한다. allowJs 컴파일러는 타입스크립트 파일과 자바스크립트 파일이 서로를 임포트 할 수 있게 해준다.

대규모 마이그레이션 작업을 시작하기 전에, 테스트와 빌드 체인에 타입스크립트를 적용해야한다.


아이템 61 의존성 관계에 따라 모듈 단위로 전환하기

자바스크립트를 타입스크립트로 전환할때에는 다른 모듈에 의존하지 않는 최하단 모듈부터 작업을 시작해서 의존성의 최삳단에 있는 모듈을 마지막으로 작업해야한다.

서드파티 라이브러리 타입정보를 먼저 해결해야한다. 일반적으로는 @types 모듈을 설치하면된다.

외부 API를 호출할 경우 API 타입정보를 생성해야한다(아이템 35)

아이템 59에 이어서 타입스크립트로 전환시 발생하는 오류는 다음과 같다.

  1. 선언되지 않은 클래스 멤버
  2. 타입이 바뀌는 값

아이템 62 마이그레이션의 완성을 위해 noImplicitAny 설정하기

최종적으로 noImplicitAny를 설정하여 암시적 any타입이 발생하지 않도록한다.(아이템5) 제일 강력한 설정은 noImplicitAny , strictNullChecks도 포함하고 있는 strict : true 이다. (아이템 2)

따라서 처음부터 타입스크립트로 개발한다면 strict : true 설정을 켜두고 개발하는 것이 좋다.

profile
🌱 매일 성장하는 개발자

0개의 댓글