오늘은 TypeScript에서 기본 타입(Basic Type) 에 대해 알아보려고 한다.
TypeScript의 기본 타입이 무엇인지, 어떻게 사용해야 하는지 하나씩 살펴보자!
기본 타입이란 TypeScript 자체적으로 제공하는 타입을 의미한다.
다른 말로는 내장 타입이라고도 한다.

위는 TypeScript의 타입 계층도이다.
우리가 흔히 아는 number, string, boolean 타입뿐만 아니라
any, void, never 같은 생소한 타입들도 포함되어 있다.
TypeScript에서는 다양한 기본 타입을 제공하며,
이러한 타입들은 부모-자식 관계를 이루면서 계층을 형성한다.
TypeScript 프로젝트를 시작하려면,
먼저 tsconfig.json 파일을 설정해야 한다.
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"outDir": "dist",
"strict": true,
"moduleDetection": "force"
},
"include": ["src"]
}
| 옵션 | 설명 |
|---|---|
| target | 컴파일된 JavaScript의 버전 결정 (ESNext는 최신 버전) |
| module | 생성될 모듈 시스템 결정 |
| outDir | 컴파일된 파일들이 저장될 디렉터리 설정 |
| strict | 엄격한 타입 검사 활성화 |
| moduleDetection | 모든 TypeScript 파일을 격리된 모듈로 취급 |
| include | 컴파일할 TypeScript 파일의 범위 설정 |
원시 타입이란?
👉 동시에 하나의 값만 저장할 수 있는 타입을 의미한다.
배열이나 객체 같은 비원시 타입은 여러 개의 값을 저장할 수 있지만,
number, string 같은 원시 타입은 하나의 값만 저장 가능하다.
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;
number 타입은 정수, 실수, Infinity, NaN 등 모든 숫자 값을 포함한다.
이때, : 뒤에 타입을 정의하는 "타입 주석(Type Annotation)" 문법을 사용한다.
주의! number 타입을 가진 변수에는 문자열을 할당할 수 없다!
num1 = 'string'; // X
num1.toUpperCase() // X
let str1: string = "hello";
let str2: string = 'hello';
let str3: string = `hello`;
let str4: string = `hello ${str1}`;
string 타입은 모든 문자열 값을 포함한다.
큰따옴표 " ", 작은따옴표 ' ', 백틱 ` ` 모두 사용할 수 있다.
let bool1: boolean = true;
let bool2: boolean = false;
boolean 타입은 참(true)과 거짓(false)만 저장할 수 있다.
let null1: null = null;
null 타입은 오직 null 값만 저장할 수 있다.
let unde1: undefined = undefined;
undefined 타입도 오직 undefined 값만 저장할 수 있다.
null 값을 다른 타입에 할당할 수 있을까?JavaScript에서는 null을 임시값으로 할당하는 경우가 많았다.
let a = null; // 가능
하지만 TypeScript에서는 number 타입 변수에 null을 할당할 수 없다!
let a: number = null // X
📌 해결 방법
tsconfig.json에 "strictNullChecks": false 옵션을 추가하면 가능하다.
하지만 strict 모드를 사용하면 자동으로 strictNullChecks가 true 가 되므로,
엄격한 타입 검사를 원한다면 null 대신 undefined를 사용하는 것이 좋다.
TypeScript에서는 딱 하나의 값만 허용하는 타입을 만들 수도 있다.
이것을 리터럴 타입(Literal Type) 이라고 한다.
let a:100 = 100;
리터럴 타입을 사용하면, 변수에 다른 값을 할당할 수 없다.
let strA:"hello" = "hello"
let boolA: true = true;
let boolB: false = false;
리터럴(Literal)이란?
→ 값 자체를 의미하는 용어!
→ 즉, 리터럴 타입은 "값 그 자체가 타입이 되는 것" 을 의미한다.
오늘은 TypeScript의 기본 타입(Primitive Type) 에 대해 알아봤다!
✔ 원시 타입(Primitive Type)에는 number, string, boolean, null, undefined가 있다.
✔ 리터럴 타입(Literal Type)은 특정 값만 허용하는 타입이다.
✔ TypeScript에서는 null을 다른 타입 변수에 할당하려면 strictNullChecks 옵션을 변경해야 한다.
다음에는 비원시 타입(Non-Primitive Type) 에 대해 알아보자!