본문으로 건너뛰기

[Day 2] 컴파일러 설정과 기본 타입

1. 컴파일러 설정

tsconfig.json이다. tsx를 사용하고 있기 때문에 별도의 설정이 필요하지 않아 간략하게 정리한다.

{

"compilerOptions": {

"target": "ESNext",

"module": "ESNext",

"outDir": "dist",

"strict": true,

"moduleDetection": "force"

},

"include": ["src"]

}

1. 의미

  • target : 컴파일 결과 생성되는 자바스크립트 코드의 버전 결정, ESNext는 최신 자바스크립트를 의미함

  • module : 컴파일 결과 생성되는 자바스크립트 코드의 모듈 시스템 결정

  • outDir : 컴파일 결과 생성되는 자바스크립트 파일들의 위치 결정

  • strict : 엄격한 타입 검사 여부 설정

  • moduleDetection : 모든 타입스크립트 파일(.ts)에 export 키워드를 자동으로 추가하여 격리된 모듈로 취급되도록 만드는 옵션

  • include : tsc로 컴파일 할 타입스크립트 파일의 범위 설정

2. 기본 타입

타입 스크립트에서 자체적으로 제공하는 타입들을 계층에 따라 분류한 그림이다. 타입 스크립트는 변수 뒤에 콜론과 함께 타입을 정의하는 타입 어노테이션 방식을 사용해 선언한다.

1. 원시 타입

1. number 타입

// number
let num1: number = 123;
let num2: number = -123;
let num3: number = 0.123;
let num4: number = -0.123;
let num5: number = Infinity;
let num6: number = -Infinity;
let num7: number = NaN;

정수, 소수, 음수, infinity, NaN등의 특수한 숫자도 포함할 수 있다.

2. string 타입

// string
let str1: string = "hello";
let str2: string = 'hello';
let str3: string = `hello`;
let str4: string = `hello ${str1}`;

문자열을 의미하는 타입으로, 단순 쌍따옴표 문자열 뿐만 아니라 작은 따옴표, 백틱, 템플릿 리터럴로 만든 모든 문자열을 포함한다.

3. boolean 타입

// boolean
let bool1 : boolean = true;
let bool2 : boolean = false;

참과 거짓만을 저장하는 타입이다. true 또는 false만 이 타입에 해당된다.

4. null 타입

// null
let null1: null = null;

오직 null 값만 포함하는 타입이다.

1. null 값을 다른 타입의 변수에 할당하기

타입스크립트에서 변수에 null 할당시 NullCheck 오류가 발생하는데 tsconfig.jsonstrcitNullChecks 옵션을 바꿔주는 것으로 할당이 가능해진다. 안전한 코드 작성에 필요하지 않은 옵션이기 때문에 사용하지 않는다.

{
"compilerOptions": {
"strictNullChecks": false
},
"ts-node": {
"esm": true
},
"include": ["src"]
}

5. undefined 타입

// undefined 타입
let unde1: undefined = undefined;

null 타입과 마찬가지로 오직 하나의 값 undefined만 포함하는 타입이다.

2. 리터럴 타입

변수에 하나의 값만 포함하게 만들 수 있다.

let numA: 10 = 10;
let strA: "hello" = "hello";
let boolA: true = true;
let boolB: false = false;

3. 과제

1. 타입 스크립트의 타입 시스템

2. 타입 스크립트의 특징

3. 타입 스크립트를 컴파일 하면 생기는 것(동작 원리)

4. 타입 검사를 엄격하게 설정하는 방법

5. 엄격한 null 타입 검사 비활성화

4. 제출

작성하고 느낀 점

좋았던 점: 개념적인 내용의 강의를 알기 쉽게 알려주었다. 과제를 수행하는 방식이 특이하다.

배운 점: 타입 스크립트의 설정과 컴파일 과정, 기본 타입에 대해 배웠다. 강의를 다 들으면 다른 책을 학습할 때 체계적인 계획을 만들 수 있을 것이다.

아쉬운 점: 강의 순서를 혼동한 나머지 진도를 빠르게 나가버렸다.

향후 계획: 학습 진행 순서에 맞게 진행하고 과제를 제출할 것이다.


출처 : 한 입 크기로 잘라먹는 타입스크립트 - 이정환