npm init -y
tsc --init --rootDir ./src --outDir ./dist --esModuleInterop --module commonjs --strict true --allowJS true --checkJS true
--rootDir ./src
src 디렉토리
--outDir ./dist
dist 디렉토리
--esModuleInterop
ES모듈 방식
의 import 구문
으로 가져올 수 있다."scripts": {
"start": "tsc && node ./dist/index.js",
"build": "tsc --build",
"clean": "tsc --build --clean"
},
░▒▓ ~/w/first_typescript ▓▒░ ls -al ░▒▓ ✔ │ 08:01:29 PM ▓▒░
total 32
drwxr-xr-x 5 chris staff 160 5 4 20:11 .
drwxr-xr-x 32 chris staff 1024 5 4 18:35 ..
-rw-r--r-- 1 chris staff 230 5 4 19:08 package.json
drwxr-xr-x 3 chris staff 96 5 4 20:11 src
-rw-r--r-- 1 chris staff 11298 5 4 20:10 tsconfig.json
code .
function assignGrade(average: number): string { ... }
학점을 부여하는 함수
function assignGrade(average: number): string { if (average >= 90) { return 'A'; } else if (average >= 80) { return 'B'; } else if (average >= 70) { return 'C'; } else if (average >= 60) { return 'D'; } else { return 'F'; } }
interface
는 객체의 구조를 정의하는 방법.interface Student {
name: string;
age: number;
scores: {
korean: number;
math: number;
society: number;
science: number;
english: number;
};
}
Student
라는 타입의 객체를 받아서 평균을 계산하는 calculateAverage
라는 함수를 만들기function calculateAverage(student: Student): number { ... }
=>
function calculateAverage(student: Student): number {
const sum = student.scores.korean + student.scores.math + student.scores.society + student.scores.science + student.scores.english;
// 1. 하드 코딩
const average = sum / 5;
return average;
}
Object.keys()
함수로 객체 내 특정 속성을 이루는 키 값들을 배열로 반환하기const average = sum / 5;
=>
const average = sum / Object.keys(student.scores).length;
npm run build
npm run start
= 결과
npm cache clean --force
rm -rf node_modules
npm install
프로젝트에 TypeScript의 최신 버전이 설치되어 있는지 확인
npm install typescript@latest --save-dev
{
"compilerOptions": {
"outDir": "./dist",
"noImplicitAny": true,
"module": "ES6",
"target": "ES5",
// + "moduleResolution": "node",
"allowJs": true,
"sourceMap": true
}
}
=> moduleResolution
이 제대로 입력되었는지 확인
= 실행 시엔 해당 주석 풀기