타입 애너테이션과 타입 추론

·2023년 6월 26일
0

2023 타입스크립트

목록 보기
1/2
post-thumbnail

타입 애너테이션 (type annotation)

자바스크립트 변수에 타입을 선언한다. 선언 방법은 변수 이름 뒤에 콜론(:)을 적고 타입을 작성하는 방식이다.

let myVar: type = value

만약 값으로 지정한 타입과 다른 것을 할당하는 경우 타입스크립트는 에러를 보여준다.

타입스크립트에서 선언할 수 있는 기본 원시 type들은 다음과 같다.

  • string : 자바스크립트에서 작성되는 모든 문자열을 포함한다.
  • number : 자바스크립트에서 작성되는 모든 숫자를 포함한다. 해당 숫자에는 기본 정수 타입외에도 소수 타입 역시 number에 포함된다.
  • boolean : true, false의 boolean 값을 말한다.

타입스크립트 컴파일링

타입스크립트로 작성하는 모든 코드들은 향후 컴파일링 과정을 거쳐 자바스크립트로 변환되어 사용된다. 타입스크립트를 컴파일링 하는 방법은 다음과 같다.

// 해당 파일이 존재하는 경로에 터미널을 켜야한다.
(npx) tsc [파일이름.ts]

실행 시 타입스크립트 코드가 다음과 같이 자바스크립트 코드로 변경된다.

타입 추론 (type inference)

타입스크립트는 일반적으로는 변수 선언마다 타입을 선언하여 사용하지만, 할당된 값에 따라 자신이 현재 어떤 타입인지를 파악하기도 한다.

let x = 2;
x = 'Twenty-seven';
// ERROR - Type 'string' is not assignable to type number

any

오직 타입스크립트에만 존재하는 기능으로, 어떤 타입이든 상관없이 다 받는 타입이다. 정확히는 해당 변수에는 타입 확인을 무시한다는 선언으로, 타입스크립트를 사용해야하는 목적과 멀어지기 때문에 가급적 사용을 지양하는 타입이다.

eslint 사용시 실제 이러한 any 타입 사용을 에러로 반환하도록 설정하는 방식도 있다.

다음은 any 타입을 선언한 변수의 값을 바꾸는 코드이다. 어떤 값을 지정하여도 에러가 나타나지 않는다.

더불어 선언만 된 체 값이 할당되지 않은 변수는 타입스크립트에서 any로 타입 추론을 한다.

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글