📌 원시타입과 리터럴 타입
원시 타입(Primitive Type)은 동시에 한개의 값만 저장할 수 있는 타입들을 말함.
예를 들어 원시 타입이 아닌 배열이나 객체 같은 비 원시 타입들은 동시에 여러개의 값들을 저장할 수 있는 반면,
number, string, boolean 등의 원시 타입은 숫자면 숫자, 문자열이면 문자열 딱 하나의 값만 저장할 수 있음 원시 타입은 여러 타입들중 가장 기본이 되는 타입임
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;
number타입은 자바스크립트에서 숫자를 의미하는 모든 값을 포함하는 타입임.
단순 정수 뿐 아니라 소수, 음수, Infinity, NaN 등의 특수한 숫자들도 포함됨.
참고로 변수의 이름 뒤에 :과 함께 변수의 타입을 정의하는 문법을 “타입 주석” 혹은 “타입 어노테이션” 이라고 함.
num1 = 'hello'; // X
num1.toUpperCase(); // X
이때 number타입으로 정의한 변수에는 number 타입을 제외한 값을 할당할 수 없음.
⇒ 그에 맞지않는 메서드도 사용 불가!
String 타입
// string
let str1: string = "hello";
let str2: string = 'hello';
let str3: string = `hello`;
let str4: string = `hello ${str1}`;
string 타입은 문자열을 의미하는 타입임
"", '', 백틱, 템플릿 리터럴로 만든 모든 문자열을 포함함
boolean 타입
// boolean
let bool1: boolean = true;
let bool2: boolean = false;
boolean 타입은 참과 거짓만을 저장하는 타입. true , false만 이 타입에 해당됨
null 타입
// null
let null1: null = null;
null 타입은 오직 null값만 포함하는 타입.
undefined 타입
// undefined 타입
let unde1: undefined = undefined;
undefined 타입 역시 null타입과 마찬가지로 오직 하나의 값 undefined만 포함하는 타입
null 값을 다른 타입 변수에 할당하기
자바스크립트에서는 다음과 같이 아직 값이 정해지지 않은 상태에서는 변수에 null을 임시로 넣어두곤 했었음
let numA = null;
하지만 타입스크립트에서는 이 numA가 만약 number타입의 변수일 경우 오류가 발생함.
let numA: number = null; // X
null은 number타입에 포함되는 값이 아니기 때문임!
그런데, null값을 변수의 임시값으로 활용할 때가 분명히 존재함.
그럴 때는 tsconfig.json의 strictNullChecks(엄격한 null 검사) 옵션을 false로 설정하면 됨
{
"compilerOptions": {
...
"strictNullChecks": false,
...
},
"ts-node": {
"esm": true
},
"include": ["src"]
}
리터럴 타입
타입스크립트에는 string, number 처럼 범용적으로 많은 값을 포함하는 타입 뿐만 아니라 딱 하나의 값만 포함하는 타입도 존재함. 따라서 다음과 같이 변수의 타입을 숫자 10으로 설정하는 것 또한 가능함
let numA: 10 = 10;
변수 numA의 타입을 숫자 10으로 설정했음. 이렇게 설정하면 numA에는 10이외의 값을 저장할 수 없게 됨.
이렇듯 하나의 값만 포함되도록 값 자체로 만들어진 타입을 타입스크립트에서는 “리터럴 타입”이라고 부름
숫자 값 뿐 아니라 string이나 boolean타입의 값도 모두 리터럴로 만들 수 있음
let strA: "hello" = "hello";
let boolA: true = true;
let boolB: false = false;
'React > TypeScript' 카테고리의 다른 글
| [TypeScript] any와 unknown (0) | 2026.03.09 |
|---|---|
| [TypeScript] 열거형 타입(enum) (0) | 2026.03.09 |
| [TypeScript] 타입 별칭과 인덱스 시그니처 (0) | 2026.03.09 |
| [TypeScript] 객체 (0) | 2026.03.06 |
| [TypeScript] 배열과 튜플 (0) | 2026.03.06 |