2 minute read

타입스크립트 개요

타입스크립트를 과정(기본조건)

TypeScript (.ts) 파일을 사용하기 위해서는 다음의 기본 조건들이 필요하다.

  1. Node.js와 TypeScript 설치
    TypeScript는 Node.js 환경에서 실행되며, 따라서 Node.js와 TypeScript를 설치해야 한다.
  2. TypeScript 설정 파일(tsconfig.json)
    TypeScript 컴파일러는 tsconfig.json이라는 설정 파일을 사용하여 컴파일 옵션을 구성한다. 이 설정 파일은 프로젝트 루트 디렉토리에 위치하며, 필요한 컴파일 옵션들을 지정해야 한다.
  3. TypeScript 파일 작성
    TypeScript는 JavaScript의 슈퍼셋이므로, JavaScript와 동일한 문법을 사용할 수 있다. 더불어 TypeScript의 고급 기능들인 정적 타입 검사, 인터페이스, 데코레이터 등을 활용하여 TypeScript 파일을 작성해야 한다.
  4. TypeScript 컴파일
    작성한 TypeScript 파일을 JavaScript 파일로 변환하기 위해 TypeScript 컴파일러를 사용해야 한다. tsconfig.json 파일에서 지정한 컴파일 옵션들에 따라 TypeScript 파일을 컴파일하여 JavaScript 파일을 생성할 수 있다.
  5. JavaScript 실행
    컴파일된 JavaScript 파일을 실행하여 TypeScript의 고급 기능들이 반영된 코드를 실행할 수 있다. JavaScript 파일은 일반적인 방식으로 실행하면 된다. (예를 들어, Node.js 환경에서는 node 명령어를 사용하여 JavaScript 파일을 실행할 수 있다.)

위의 기본 조건들을 충족시키면 .ts 파일을 사용할 수 있게 된다.

STEP1. TypeScript 설치

# 일반적으로 TypeScript를 프로젝트마다 로컬로 설치하는 것이 권장 된다. 
# 이는 프로젝트 내에서 TypeScript의 버전을 관리하고, 
# 프로젝트 별로 다양한 TypeScript 버전을 사용할 수 있는 유연성을 제공하기 위함이다.
npm install typescript 

# package.json
"dependencies": {
    "dotenv": "^16.0.3",
    "express": "^4.18.2",
    "mysql2": "^3.2.0",
    "typescript": "^5.0.4" # 추가되어짐
  }

STEP2. TypeScript 설정 파일(tsconfig.json)

: tsconfig.json 파일을 조정하여 컴파일 옵션을 세밀하게 제어가능하다. TypeScript 프로젝트를 컴파일할 때, 해당 설정에 따라 TypeScript 컴파일러가 동작한다.

tsconfig.json 을 만들지 않은 경우 예시

// 설정 파일이 없을때 디폴트 값을 표현하자면 아래와 같다.
{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": false,
    // 기타 필요한 설정 옵션들
  },
  // 다른 설정 옵션들
}

tsconfig.json 작성

{
  "compilerOptions": {
    "jsx": "react-jsx",  // JSX 문법 React 컴포넌트 작성가능 
    "target": "es6",     // 컴파일된 JavaScript의 목표 버전 
    "module": "esnext",  // 동적으로 최신 ECMAScript 로딩
    "moduleResolution": "node",  // 컴파일러 모듈해석 방식
    "sourceMap": true,   // 소스맵파일 생성되어 디버깅 유리
 
    "emitDecoratorMetadata": true, // TypeScript 컴파일러는 클래스의 데코레이터에 대한 추가 메타데이터를 생성하여 런타임에서 사용 가능해짐
    "experimentalDecorators": true, // TypeScript에서 데코레이터를 사용할  있게된다.
    "removeComments": false, // false: 컴파일된 JavaScript 코드에서 주석을 제거하지 않고 그대로 유지한다.(기본값 true)
    "noImplicitAny": false,  // true: 암묵적으로 "any" 타입으로 추론되는 경우에 컴파일 강제에러 발생

    "supperessImplicitAnyIndexErrors": true, //true: 인덱스로 접근하는 경우에 any 타입으로 추론되는 경우에도 컴파일 에러가 발생하지 않게된다.

    "outDir": "./target/classes/static/app", // 컴파일폴더
    "lib": [             // 라이브러리 추가 폴더
      "dom",
      "es2015", 
      "es2016", 
      "es2017"
    ],
    "allowJs": true, 
    "checkJs": true, 
    "baseUrl": "./src",  // 상대경로

    "importHelpers": true,   // ES, CommonJS 모듈  상호개선
    "esModuleInterop": true,  
    "allowSyntheticDefaultImports": true, 
    "skipLibCheck": true, 
    "forceConsistentCasingInFileNames": true, 
    "noFallthroughCasesInSwitch": true, 
    "resolveJsonModule": true, 
    "isolatedModules": true, 
    "noEmit: true, 
    "strict": true
  },
  "include": ["src"],
  "exclude": [
    "node_modules", 
    "./target/classes/static/app"
    //"dist"
    //"build"
  ]
}

STEP3. TypeScript 파일 작성

test-typescript.ts

// TypeScript는 JavaScript의 상위 집합 언어(슈퍼셋)이므로, JavaScript 코드를 TypeScript 파일에 그대로 작성할 수 있다.

STEP4. TypeScript 컴파일

# .ts 파일이 JavaScript 파일로 컴파일되어 생성된다.
tsc <파일이름>.ts

STEP5. JavaScript 실행

node <파일이름>.js

Leave a comment