undefined와 null 타입은 다른 타입과 함께 유니온 타입으로 정의할 때 많이 사용 된다
let v: number | undefined = undefined;
v = 123;
아무 값도 반환하지 않고 종료되는 함수의 반환 타입은 void 타입으로 정의할 수 있다
function f1(): void {
console.log('hello');
}
function f2(): never {
throw new Error('some error');
}
function f3(): never {
while (true) {
}
}
여러 타입의 교집합과 합집합을 교차 타입과 유니온 타입으로 표현 가능하다. 교차타입은 &, 유니온 타입은 |으로 표현한다.
let value: (1 | 3| 5) & (3 | 5 | 7);
value = 3;
value = 1 // 타입에러
enum은 열거형 타입이다.
enum Sports {
soccer,
basketball,
baseball
}
const value1: Sports = Sports.soccer;
const value2: Sports.basketball | Sports.baseball = Sports.basketball; // 1, 2 와 같은 숫자를 넣어도 된다!
명시적으로 값을 입력할 수도 있다.
enum Sports {
soccer,
basketball = 10,
baseball
}
function getInfo(name: string, age: number): string {
return `${name}의 나이는 ${age}입니다.`;
}
const v1: string = getInfo('김준수', 27);
const v2: string = getInfo('김준수', "27"); // 타입에러
const v3: number = getInfo('김준수', 27); // 타입에러
?를 붙임으로써 선택 매개변수로 만들 수 있다. 기본값은 옆에 =으로 적어주면된다.
function getInfo(name: string, age: number = 27, language?: string) {
// 구현부
}
선택 매개변수는 제일 오른쪽에 와야한다. 기본 값은 타입을 적어주지 않아도 가능하다. 기본값대로 타입이 지정된다.