본문 바로가기
language/typescript

📌 타입스크립트 기본 타입 완전 정복 – number, string, boolean 등

by 죄니안죄니 2025. 4. 26.
📚 타입스크립트 입문 시리즈
🟢 ① tsconfig.json 완전 정복 | 🟢 ② 개발 환경 세팅 | 🔵 ③ 기본 타입 정복 | ⚪ ④ interface vs type

📌 타입스크립트 기본 타입 완전 정복 – number, string, boolean 등

타입스크립트를 처음 접하는 입문자라면, 가장 먼저 마주치는 것이 "기본 타입"입니다.
JavaScript에서는 동적으로 타입이 바뀌지만, TypeScript에서는 개발 단계에서부터 타입을 선언하고 오류를 방지할 수 있습니다.


🔢 number (숫자형)

let age: number = 29;
let height: number = 172.5;
let temperature: number = -5;

🔤 string (문자열형)

let name: string = '홍길동';
let greeting: string = `안녕하세요, ${name}님!`;

✅ boolean (불리언형)

let isActive: boolean = true;
let hasPermission: boolean = false;

📦 배열 (Array)

let numbers: number[] = [1, 2, 3];
let names: Array<string> = ['Alice', 'Bob'];

🧱 튜플 (Tuple)

let user: [string, number] = ['홍길동', 30];

❓ any (아무 타입)

let data: any = 123;
data = '문자열도 가능';
data = true;

 

- 타입검사 ❌ 어떤 값이 든 담을 수 있음

- 컴파일은 통과하더라도, 런타임 오류 날 수도 있음

- JS와 다를 바 없음. typescript를 쓰는 의미가 없어짐

- 빠르게 타입 무시하고 넘어갈 때

- 사용 최소화 (나중에 꼭 수정)

✨ 팁: ESLint에서 no-explicit-any 룰을 켜면 any 사용을 막을 수 있어요!


🕳️ unknown (안전한 any)

let value: unknown = 'Hello';
if (typeof value === 'string') {
  console.log(value.toUpperCase());
}

 

- 타입검사어떤 값이 든 담을 수 있음. 사용 전에 검사 필수

- 안전함 (TS 스타일 유지)

- 외부 API, 사용자 입력 등 정확한 타입을 알 수 없을 때


🪫 null & undefined

let empty: null = null;
let notAssigned: undefined = undefined;

 

- null : 의도적으로 없음(명시적 초기화) 

- undefined: 변수 선언만하고 지정하지 않은 경우. (초기화 안 됨, 누락된 인자.. 암묵적)

함수 매개변수 선택적 처리 (undefined)

function greet(name?: string) {
  console.log("안녕하세요, " + (name ?? "방문자") + "님!");
}
greet();           // name은 undefined
greet("홍길동");   // name은 "홍길동"

💡 name?: string은 사실상 name: string | undefined와 같아요.

상태 초기화 (null)

 
let selectedUser: string | null = null;

// 나중에 값을 넣음
selectedUser = "admin123";

→ 이건 “아직 아무도 선택되지 않음”이라는 상태를 명시적으로 표현한 것

📌 요약 정리

코드 설명 허용 여부 (strictNullChecks)
let name: string = "홍길동" 문자열 OK
let name: string = null null은 string 아님(타입 불일치)
let name: string = undefined undefined도 아님 (타입 불일치)
let name: string | null null도 가능(허용)
let name: string | undefined undefined도 가능 (허용)
let name?: string 선택적 매개변수 → string | undefined

📦 + never 타입(조건부 타입에서 많이 사용)

// 기본 타입 정복 항목 중
type Example = never; // 어떤 값도 가질 수 없는 타입

💡 함수가 return하지 않거나 무한 루프일 때 자동으로 추론됩니다:

function error(message: string): never {
  throw new Error(message);
}

 

 


🧠 정리: 타입스크립트 기본 타입 요약

타입 예시 설명
number 123, -1, 3.14 숫자 (정수, 실수 등)
string 'text' 문자열
boolean true, false 참/거짓
Array [1, 2, 3] 배열
Tuple ['홍길동', 30] 순서 고정 배열
any 모두 가능 지양
unknown 모두 가능 검사 필요
null / undefined null, undefined 값 없음 / 정의 안됨

📘 다음 글 예고

👉 interface vs type 차이와 실전 활용에서 객체 타입 선언의 핵심을 알아봅니다!

 

댓글