→ object와 reference 형태가 아닌 실제 값을 저장하는 자료형
let str: string = "hi";
let inSucceeded: boolean = true;
let decimal: number = 6;
let hex: number = 0xf00d;
let n: null = null;
let u: undefined = undefined;
typeof null
// ‘object’ typeof undefined
// ‘undefined’→ 객체, 배열, 함수 등과 같은 Object 형식의 타입
메모리에 값을 주소로 저장하고, 출력 시 메모리 주소와 일치하는 값을 출력
object → 기본 자료형에 해당하지 않는 타입
string, boolean, number, null, undefined를 제외한 타입
function create(o: object):void{}
create({prop: 0}) // 성공
create([1, 2, 3]) // 성공
create("string") // error
create(false) // error
create(42) // error
create(null) // error
create(undefined) // error
array → 배열을 저장하는 타입
let arr: number[] = [1, 2, 3]
제네릭을 사용한 타입 표기도 가능함
let arr: Array<number> = [1, 2, 3]
→ 타입스크립트에서 개발자의 편의를 위해 추가로 제공하는 타입
let arr: [string, number] = ["hi", 6];
arr[1].concat("!"); // Error, concat은 string 전용 함수이기 때문에 에러가 발생함.
arr[3] = "hello"; // Error, 정의하지 않은 index 호출 시 에러가 발생함.
enum Car { BUS, TAXI, SUV };
let bus: Car = Car.BUS;
let bus: Car = Car[0]; // 인덱스 번호로 접근
// 인덱스를 사용자 편의로 변경
enum Car {BUS = 1, TAXI = 2, SUV = 3 };
let texi: String = Car[2];
enum Car { BUS = 2, TAXI, SUV };
let taxi: String = Car[3];
let str: any = "hi";
let num: any = 10;
let arr: any = ["a", 2, true];
let unknown: void = undefined;
function sayHi(): void {
console.log("hi");
}
function neverEnd(): never {
whild(true){}
}
// break로 인해 함수가 종료되기 때문에 에러 발생
function neverEnd(): never {
whild(true){}
break;
}
// 항상 오류를 발생시키는 함수
function error(message: string): never {
throw new Error(message);
}