본문 바로가기
Front/TypeScript

Typescript 이해하기

by Awesome-SH 2020. 5. 22.

 

이번 포스팅은 타입스크립트에 대해 알아보고 기초 문법들을 살펴보겠습니다.

 

타입스크립트를 왜 쓸까?

에러를 방지하기 위해 많은 단위 테스트들이 필요하지만,

타입스크립트를 통해 이런 오류들에 대해 선언과 동시에 예방? 할 수 있고,

타입스크립트 컴파일러에 의해 코드 오타, 타입에러 등 컴파일 타임에 모든 유형 오류를 알려주기 때문에

코딩과 동시에 에러를 잡을 수 있어 코드품질 향상을 도와줄 수 있다.

 

타입스크립트 환경 구성하기

  $ yarn global add typescript 또는
  $ npm install -g typescript

 

그 다음, 아래 명령어를 입력하면
타입스크립트 설정파일인 (tsconfig.json) 파일이 생성됩니다.

$ tsc --init

 

설정파일을 살펴보기

/tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true
  }
}

 

  • target : 컴파일된 코드가 실행될 환경을 설정
  • module : 컴파일된 코드가 사용할 모듈 시스템을 설정
  • strict : 모든 타입을 체크할 것인지 예(true), 아니오(false)
  • esModuleInterop : commonjs 모듈 형태로 이루어진 파일을 ES2015 모듈 형태로 불러올 수 있도록 할것인지 예(true), 아니오(false)

 

타입스크립트 설정파일에서 한가지를 추가해 줍니다.

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    
    "outDir" : "./dist"
    
  }
}

 

타입스크립트 작성해보기

프로젝트 경로에 src 폴더를 만들고, 그 안에 test.ts 파일을 만들어 줍시다.

// src/test.ts

const hello: string = 'Hello Typescript';
console.log(hello);

위 코드에서 변수가 선언된 이후에 (: string) 이것이 바로 해당 변수에 타입을 선언(명시)하는 것입니다.

만약 선언(명시) 타입에 일치하는 않는 타입의 값이 해당 변수로 들어올 때 에러가 발생합니다.

 

let hello: string = 'Hello Typescript';
console.log(hello);
hello = 1;

위와 같이 코드를 변경해보면 에러가 발생하는 것을 확인 하실 수 있습니다.

다시 코드를 원복 한 뒤 터미널에 아래 명령어를 입력해 줍니다.

 

 $ tsc

입력하고 나면 아까 설정해두었던 /dist 폴더 안에 ES2015로 변환된 test.js가 생성 되어있을 겁니다.

test.js 파일을 열어보게 되면 변수 선언시 명시했던 타입들은 컴파일 과정에서 모두 사라지게 됩니다.

 

 

타입스크립트 예시

// 내 나이
let age: number = 0;
console.log(age);
age = "서른하나";   // 에러

// 내 이름
let name: string = "박성화";
console.log(name);
name = parksunghwa; // 에러

// 생일 지남?
let birth: boolean = false;
console.log(birth);
birth = "true"; // 에러

// 내가 좋아하는 것들
let likes: '음악' | '테크' | '전자기기' | '게임';
likes = '등산'   // 등산 극혐 에러
// 위에 좋아하는것에 포함되지 않아 에러 발생

댓글