[TypeScript] 원시타입과 리터럴 타입

2026. 3. 6. 19:01·React/TypeScript

📌 원시타입과 리터럴 타입

원시 타입(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
'React/TypeScript' 카테고리의 다른 글
  • [TypeScript] 열거형 타입(enum)
  • [TypeScript] 타입 별칭과 인덱스 시그니처
  • [TypeScript] 객체
  • [TypeScript] 배열과 튜플
이도서
이도서
  • 이도서
    도서의 코딩노트
    이도서
  • 전체
    오늘
    어제
    • 분류 전체보기 (256)
      • Today I Learned (79)
        • 2024 (78)
      • Swift (25)
        • Swift 문법 정리 (19)
        • RxSwift (5)
      • Swift Study (12)
        • Playground (2)
        • Storyboard (9)
        • UIKit (1)
      • Flutter (27)
        • Dart 언어 (16)
        • Flutter Study (11)
      • React (44)
        • HTML & CSS (8)
        • JavaScript 기본 (12)
        • JavaScript 심화 (14)
        • Node.js (2)
        • React (1)
        • TypeScript (7)
      • Git (3)
      • 코딩테스트 (60)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 개발 공부 공유 링크
  • 인기 글

  • 태그

    코딩테스트Level.1
    Flutter
    ios앱개발자
    html
    함수
    storyboard
    내일배움캠프
    Swift
    Typescript
    코딩테스트
    코딩테스트 level.1
    javascript 기본
    function
    DART
    CLASS
    ios
    javascript
    Til
    React
    객체지향
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이도서
[TypeScript] 원시타입과 리터럴 타입
상단으로

티스토리툴바