📌 타입스크립트 기본 타입 완전 정복 – 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 차이와 실전 활용에서 객체 타입 선언의 핵심을 알아봅니다!
'language > typescript' 카테고리의 다른 글
🔧 함수의 타입 선언 – 매개변수, 반환, 옵셔널, 디폴트 완전 정복 (0) | 2025.04.27 |
---|---|
🧱 객체 타입 선언 – interface vs type 완전 비교 (1) | 2025.04.27 |
🛠️ TypeScript 개발 환경 세팅 (VSCode + ESLint + Prettier 완전 세팅 가이드) (0) | 2025.04.26 |
🛠️ 타입스크립트 환경 설정 완전 정복 - tsconfig.json 제대로 알기 (Strict 모드 중심) (0) | 2025.04.26 |
타입스크립트란 무엇인가 – 자바스크립트를 위한 타입 강화 언어 | 점진적 마이그레이션 (0) | 2025.04.08 |
댓글