출시·고도화 중
TypeScript 안내서 · 1/6
TypeScript는 JavaScript에 정적 타입을 더한 언어입니다. TypeScript 코드는 컴파일러 tsc가 타입을 검사한 뒤 일반 JavaScript로 바꾸고, 그 결과를 Node.js나 브라우저가 실행합니다. 타입은 실행 전에만 쓰이고 실행 결과물에는 남지 않는다는 점을 먼저 기억해 두면 이후 내용이 훨씬 쉽게 이해됩니다.
이 장에서는 Node.js와 TypeScript를 설치하고, tsconfig.json으로 프로젝트를 설정하고, 코드를 실행하는 몇 가지 방법과 편집기 설정을 살펴봅니다.
TypeScript 컴파일러는 npm 패키지로 배포되므로 먼저 Node.js가 필요합니다. Node.js 공식 사이트에서 LTS(장기 지원) 버전을 내려받거나, 여러 버전을 오가야 한다면 nvm 같은 버전 관리 도구를 쓰는 것이 좋습니다. 설치가 끝나면 터미널에서 버전을 확인합니다.
node --version
npm --versionTypeScript는 전역으로 설치하기보다 프로젝트마다 개발 의존성으로 설치하는 것을 권장합니다. 그래야 팀원 모두가 같은 컴파일러 버전을 쓰고, CI에서도 같은 결과를 얻습니다.
mkdir hello-ts
cd hello-ts
npm init -y
npm install --save-dev typescript
npx tsc --versionnpx tsc는 프로젝트의 node_modules에 설치된 컴파일러를 실행합니다. 이제 설정 파일을 만듭니다.
npx tsc --inittsc --init은 주석이 달린 tsconfig.json을 만들어 줍니다. 처음에는 다음처럼 핵심 옵션만 남겨 두고 시작해도 충분합니다.
{
"compilerOptions": {
"target": "es2022",
"module": "nodenext",
"strict": true,
"rootDir": "src",
"outDir": "dist",
"sourceMap": true,
"skipLibCheck": true
},
"include": ["src"]
}| 옵션 | 뜻 |
|---|---|
target | 출력할 JavaScript 문법 수준 |
module | 모듈 형식과 모듈 해석 방식 |
strict | 엄격한 타입 검사 옵션 묶음을 켭니다 |
rootDir · outDir | 원본 위치와 컴파일 결과 위치 |
sourceMap | 디버거가 원래 .ts 줄을 찾도록 맵 파일 생성 |
include | 컴파일할 파일 범위 |
새 프로젝트라면 strict는 처음부터 켜 두는 것이 좋습니다. 나중에 켜면 고쳐야 할 오류가 한꺼번에 쏟아지기 때문입니다. 옵션 전체 목록은 TSConfig 레퍼런스에 정리되어 있습니다.
src/index.ts 파일을 만듭니다.
function greet(name: string): string {
return `안녕하세요, ${name}님!`;
}
const message = greet("TypeScript");
console.log(message);name: string이 타입 표기입니다. greet(42)처럼 숫자를 넘기면 컴파일 단계에서 오류가 납니다. module을 nodenext로 두었다면 package.json에 "type": "module"을 추가해 출력 파일이 ES 모듈로 실행되게 합니다. 이제 컴파일하고 실행합니다.
npx tsc
node dist/index.jstsc는 src의 파일을 검사해 dist/index.js를 만듭니다. 타입 오류가 있으면 메시지를 출력하지만, 기본 설정에서는 그래도 JavaScript 파일을 생성합니다. 오류가 있을 때 출력을 막고 싶다면 noEmitOnError 옵션을 켭니다.
개발 중에는 매번 컴파일하고 실행하는 과정이 번거롭습니다. tsx는 .ts 파일을 바로 실행해 주는 도구입니다. 다만 타입 검사는 하지 않고 타입만 지운 뒤 실행하므로, 타입 검사는 tsc --noEmit으로 따로 돌려야 합니다.
npm install --save-dev tsx
npx tsx src/index.ts
npx tsx watch src/index.ts
npx tsc --noEmit최근 Node.js는 타입 표기를 지우고 .ts 파일을 직접 실행하는 기능도 제공합니다. 다만 enum처럼 JavaScript로 변환이 필요한 문법은 지원 범위가 제한되므로, 사용 전 쓰는 Node.js 버전의 문서를 확인하는 것이 좋습니다.
package.json에 스크립트를 등록해 두면 명령을 기억할 필요가 없습니다.
{
"type": "module",
"scripts": {
"dev": "tsx watch src/index.ts",
"build": "tsc",
"typecheck": "tsc --noEmit",
"start": "node dist/index.js"
}
}Visual Studio Code는 TypeScript 언어 서비스를 내장하고 있어 별도 확장 없이도 자동 완성, 오류 표시, 이름 바꾸기, 정의로 이동을 지원합니다. 몇 가지를 설정해 두면 더 편합니다.
npx tsc가 같은 컴파일러를 씁니다.WebStorm 같은 JetBrains 편집기도 TypeScript를 기본 지원하며, 설치 없이 시험해 보고 싶다면 브라우저에서 바로 실행되는 TypeScript Playground를 쓰면 됩니다.
npm install --save-dev typescript로 설치하고 npx tsc로 실행합니다.tsconfig.json의 strict는 처음부터 켜 두는 것이 좋습니다.tsc, 개발 중 빠른 실행은 tsx, 타입 검사는 tsc --noEmit으로 나누어 쓰면 편합니다.
댓글 0개
로그인 · 로그인하면 댓글을 남길 수 있습니다.
첫 댓글을 남겨 보세요.