단일 값
불리언 (boolean)
- true, false
let isDone: boolean = false;
숫자 (number)
- 부동 소수값
- 16진수, 10진수, 2진수, 8진수 리터럴도 지원
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
문자열 (string)
- 큰따옴표, 작은따옴표, 템플릿 리터럴 모두 포함
let color: string = "blue";
color = 'red';
복합
배열 (Array)
let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];
튜플 (Tuple)
- 요소의 타입과 갯수가 고정된 배열
- 순서를 지켜야 함
// 튜플 타입으로 선언
let x: [string, number];
// 초기화
x = ["hello", 10]; // 성공
// 잘못된 초기화
x = [10, "hello"]; // 오류, 순서가 다르다
열거 (Enum)
- Enum = Enumaration (열거)
- 값의 집합에 더 나은 이름을 붙여줄 수 있음
// 아무것도 입력하지 않은 경우, 알아서 0, 1, 2가 들어감
enum Color {
Red, // 알아서 0
Green, // 알아서 1
Blue // 알아서 2
};
let c: Color = Color.Green;
// 시작 값만 정해줄 수 있음
enum Color {
Red = 10,
Green, // 알아서 11
Blue // 알아서 12
};
let c: Color = Color.Green; // 11
// 모든 값을 정해줄 수 있음
enum Color {
Red = 100,
Green = 200,
Blue = 300
};
let c: Color = Color.Green; // 200
객체 (Object)
- 원시타입이 아닌 타입
- number, string, boolean, bigint, symbol, null, 또는 undefined 가 아닌 나머지
let obj: object = {};
let arr: object = [];
let func: object = function () {};
let nullValue: object = null;
let date: object = new Date();
특이 타입
Any
- 어떤 타입이 와도 괜찮은 경우
let notSure: any = 4;
notSure = "maybe a string instead";
notSure = false; // 성공, 분명히 부울입니다.
Void (함수에서 반환 타입에서 주로 사용)
- 어떤 타입도 존재하지 않음
function warnUser(): void {
console.log("This is my warning message");
}
Null and Undefined
- null, undefined 에서 사용
// 이 밖에 이 변수들에 할당할 수 있는 값이 없습니다!
let u: undefined = undefined;
let n: null = null;
Never
- 절대 발생할 수 없는 타입
- 무조건 오류가 발생한다던가, 종료를 못해서 반환을 못하던가
// never를 반환하는 함수는 함수의 마지막에 도달할 수 없다.
function error(message: string): never {
throw new Error(message);
}
// 반환 타입이 never로 추론된다.
function fail() {
return error("Something failed");
}
// never를 반환하는 함수는 함수의 마지막에 도달할 수 없다.
function infiniteLoop(): never {
while (true) {
}
}
타입 강제 (Type assertion)
- 컴파일러에게 "날 믿어, 난 내가 뭘 하고 있는지 알아"라고 말해주는 방법
- angel-bracket, as 두 가지 방법이 있음
// angel-barcket
let myStr: any = "this is string";
let ll: number = (<string>myStr).length; // myStr 은 무조건 string 이라는 의미
// as
let myStr: any = "this is string";
let ll: number = (myStr as string).length; // myStr 은 무조건 string 이라는 의미
참고
'타입스크립트 TypeScript' 카테고리의 다른 글
타입스크립트 심화 - 타입 결합 (유니온, 교차) / 인터페이스 / 제네릭 (0) | 2023.05.16 |
---|