Hello TS World!

woodstock·2023년 7월 29일
0
post-thumbnail

Hello TS World


실습 코드를 보관할 폴더 만들기

Documents(문서) 폴더 아래애 “onebite-typescript” 라는 이름의 폴더를 만든다.


Node.js 패키지 초기화

VSCode에서 방금 만든 onebite-typescript/section1 폴더를 연다.

그 다음 터미널을 열고 다음 명령어를 입력해 Node.js 패키지를 초기화한다.


@types/node 설치하기

새로운 타입스크립트 프로젝트(패키지)를 시작할 때 패키지 초기화 이후 가장 먼저 해야하는 것이 있다.

바로 Node.js 내장 기능들의 타입 정보를 담고있는 @types/node 라는 패키지를 설치하는 것이다.

@types/node 라이브러리는 Node.js가 제공하는 기본 기능(내장 함수, 클래스 등)에 대한 타입 정보를 가지고 있다.

만약 이 라이브러리를 설치하지 않으면 Node.js가 제공하는 console 등의 기본 기능(내장 함수 등)들의 타입이 선언되지 않아서 타입스크립트의 컴파일 과정에서 타입 검사가 실패하여 오류가 발생할 수 있다.

💡 이 패키지를 꼭 설치해야 하는 이유
타입스크립트는 코드를 실행하기 전에 타입을 올바르게 사용했는지 검사하는 ‘타입 검사’ 과정을 거친다.
이 검사 과정에서 타입이 선언되지 않은 코드를 만나게 되면 타입스크립트는 타입이 올바르게 사용 되지 않았다고 생각해 오류를 발생 시킨다.
따라서 Node.js의 기본 기능들을 위한 타입을 별도로 선언하기 위해 @types/node 패키지를 설치해야 한다.

@types/node가 성공적으로 설치되면 패키지의 node_modules 폴더에 @types 폴더가 생성된다.

폴더를 열어보면 Node.js가 기본적으로 제공하는 기능(내장 함수 등)들에 대한 타입이 선언되어 있는 여러개의 폴더와 파일들이 존재한다.

아래는 Node.js가 제공하는 console 함수에 대한 타입이 선언되어 있는node_modules/@types/console.d.ts 파일이다.


타입스크립트 컴파일러 설치하기

앞서 타입스크립트의 동작 원리에 대해 살펴볼 때 타입스크립트는 컴파일러에 의해서 자바스크립트로 변환한 다음에 실행한다고 살펴본 적 있다. 그래서 자바스크립트를 실행하기 위해 Node.js를 설치하는 것 처럼 타입스크립트를 컴파일 하기 위해서는 타입스크립트 패키지를 설치해 주어야 한다.

-g 옵션을 이용해 전역으로 설치한다. 이렇게 전역으로 패키지를 설치하면 마치 pc에 설치된 프로그램처럼(Node.js 처럼) 터미널에 패키지 이름을 호출해 사용할 수 있다.

참고로 macOS일 경우 sudo(관리자 권한) 옵션을 사용하므로 PC 패스워드를 물어볼 수 있다.

설치가 완료되면 제대로 설치 되었는지 확인하기 위해서 타입스크립트 컴파일러의 버전을 출력하는 다음 명령어를 입력해서 잘 설치 되었는지 확인한다.

타입스크립트 실행하기

타입스크립트 파일 만들기

패키지 루트 아래에 src 폴더를 생성한 다음 index.ts 파일을 생성하고 다음과 같이 작성한다.


tsc로 컴파일하고 실행하기

터미널에 tsc 파일명 을 입력해 이 타입스크립트 코드를 컴파일 한다.

컴파일이 완료되면 자바스크립트 파일 src/index.js 이 생성된다.

이렇게 컴파일 된 자바스크립트 코드는 node를 이용해 실행한다.

node 파일명 을 터미널에 입력해 src/index.js를 실행한다.


ts-node로 실행하기

앞서 타입스크립트 코드를 실행하기 위해 tsc를 이용해 타입스크립트 코드를 자바스크립트로 변환한 다음 변환된 자바스크립트 코드를 Node.js로 실행시켰다. 정리하면 tsc 그리고 node 2번의 명령어를 사용해 타입스크립트 코드를 실행했다.

ts-node는 한번에 타입스크립트코드를 컴파일부터 실행시키는 도구이다.

타입스크립트를 설치할 때와 동일하게 npm에 -g 옵션을 붙여 글로벌로 설치한다.

ts-node 파일명 을 이용해 타입스크리트 파일을 실행한다.

그 결과 자바스크립트 파일을 생성하지 않고 한번에 타입스크립트 파일을 실행한다.

이렇듯 ts-node를 이용하면 보다 쉽게 한번의 명령어로 타입스크립트를 실행할 수 있다.

profile
해내는 사람

0개의 댓글