- 특정 programming 언어가 정적 언어(Compiled Language)로서의 정체성을 유지할 수 있게 하는 도구
- programming 언어로 작성된 source code를 다른 programming 언어로 변환
tsc (TypeScript Compiler): TypeScript를 JavaScript code로 변환compilerOptions)strict : 엄격한 type 검사 option을 모두 활성화
└[참고] code에서 강하게 type을 정의할 수 있고, type 정의에 대한 오류를 대응할 수 있어 안전하게 coding을 할 수 있게 한다.
target : 어떤 JavaScript version으로 변환할지 선택
module : TypeScript file을 compile한 후 생성되는 JavaScript module의 형식 지정
outDir : compile된 JavaScript file이 저장될 출력 directory 지정
sourceMap : JavaScript file에 대한 sourceMap을 생성하여 실행 중에 error가 발생했을 때 원래 TypeScript source code의 위치 확인 가능
include : src directory 밑의 file들을 compile 하겠다는 의미
exclude : node_modules, dist directory 밑의 file들을 compile 대상에서 제외하겠다는 의미
- JavaScript library도 TypeScript code에서 사용할 수 있게 해주는 도구
- 이미 작성된 다양한 JavaScript library와 호환성 유지
.d.ts file은 TypeScript type 정의 file npm init -y
tsc --init --rootDir ./src --outDir ./dist --esModuleInterop --module commonjs --strict true --allowJS true --checkJS true
/
* @param {number} a
* @param {number} b
* @returns {number}
*/
export function add(a, b) {
return a + b;
}
1) 위의 주석문은 'JSDoc'로 API의 signature(인자, return type)를 설명하는 HTML 문서 생성기
3) JSDoc으로 JavaScript source code에 type hint 제공 가능
npx tsc test.js --declaration --allowJs --emitDeclarationOnly --outDir types
/
* @param {number} a
* @param {number} b
* @returns {number}
*/
export function add(a: number, b: number): number;
import { add } from "./test";
console.log(add(1, 2));
npx ts-node foo.ts