FrontEngineer JungBam

타입스크립트란 무엇인가?(feat. 이펙티브 타입스크립트) 본문

타입 스크립트

타입스크립트란 무엇인가?(feat. 이펙티브 타입스크립트)

정밤톨 2023. 2. 13. 21:10

유데미 강의를 훑으면서 뭔가 부족했던 부분을 채우기 위해 책을 구매했다. 하나하나 조금 더 깊이 있게 타입스크립트를 이해해 볼 생각이다.

 

타입스크립트란?

1. 타입스크립트는 자바스크립트의 상위집합으로 모든 자바스크립트는 타입스크립트 안에 포함된다. 

2. 타입스크립트는 자바스크립트로 컴파일되고 자바스크립트로 실행된다.

3. 타입스크립트는 자바스크립트 런타임 동작을 모델링하는 타입 시스템을 갖고 있다. 즉, 타입 체커를 통해 런타임 오류를 발생시킬만한 오류를 찾아내려고 노력한다. 하지만, 모든 런타임 에러를 잡을 수 있는 것은 아니다.

4. 타입스크립트와 자바스크립트를 언어적으로 어떤 것이 우위에 있다라고 생각하기보다 프로젝트의 성향 및 취향의 차이일 수 있다. 하지만 일반적으로는 타입스크립트가 제공하는 DX 측면으로 보아 타입스크립트를 선호하는 추세이다.

 

타입스크립트의 설정 이해하기

☞ 타입 스크립트의 컴파일러 설정은 100개에 이른다.(설정 파일 : tsconfig.json / 터미널 : tsc --noImplicitAny program.ts)
# 설정파일 생성하기 : tsc --init
★ noImplicitAny 와 strictNullChecks

1. noImplicitAny

- noImplicitAny를 설정하지 않았을 때에는 타입이 설정되지 않은 경우 '암시적 any' 타입을 부여함.

  타입스크립트는 타입정보를 가질 때 효과적이기 때문에(타입체커가 오류를 잡을 수 있음.) 타입스크립트를 제대로 활용하기 위해서는 noImplicitAny가 설정되어 있어야 함.

- 기존에 자바스크립트로 되어있는 프로젝트를 타입스크립트로 전환하는 경우에만 noImplicitAny를 해제해주면 됨.

2. strictNullChecks : null과 undefined가 모든 타입에서 허용되는지 확인하는 설정(해제가 되면 사용가능)

- strictNullChecks를 설정하려면 noImplicitAny를 우선적으로 설정해주어야 함.

3. 엄격한 체크를 하고 싶다면 strict 설정을 고려해야함.

 

타입스크립트의 컴파일러

1. 최신 타입스크립트/자바스크립트를 브라우저에서 동작할 수 있도록 구버전의 자바스크립트로 트랜스파일

2. 코드의 타입 오류를 체크

☞ 각각이 독립적으로 수행

★ 이말이 무엇이냐면, 타입 오류가 있더라도 컴파일이 가능하다는 것.(타입 오류가 있더라도 빌드가 멈추는 것은 아니다.)

★ 즉, 타입 오류로 인한 것은 타입 체크에 문제가 있다 라고 표현하는 것이 좀 더 명확하다.

(오류가 있을 때 컴파일하지 않으려면 tsconfig.json에 noEmitOnError를 설정하면 됨.)

 

 

반응형

'타입 스크립트' 카테고리의 다른 글

내가 쓰는 제네릭 타입  (0) 2023.10.02
Union / type  (0) 2023.03.10
타입 스크립트에서의 튜플  (0) 2023.03.10
Comments