void
return 값이 없을 경우
변수에 void를 선언하면 undefined 밖에 할당 못함
let a: void = undefined;
never
function throwError(message: string): never {
// message -> server (log)
throw new Error(message);
? : Optional parameter
function printName(firstName: string, lastName?: string) {
console.log(firstName);
console.log(lastName); // undefined
}
printName("Steve", "Jobs");
printName("Steve");
Rest parameter
function addNumbers(...numbers: number[]): number {
return numbers.reduce((a, b) => a + b);
}
console.log(addNumbers(1, 2, "a")); // number가 아닌 타입은 오류 발생!
console.log(addNumbers(1, 2, 3, 4));
console.log(addNumbers(1, 2, 3, 4, 5));
Array
const readOnlyArr: string[] = ["A", "B"]; // readonly 사용 가능
const scores: Array<number> = [1, 2, 3]; // readonly 사용 불가능
function printArray(readOnlyArr: readonly string[]) {
readOnlyArr.push; // 변경 불가능(readonly)
}
Tuple
let student: [string, number];
student = ["name", 123];
student[0]; // name, 가독성 떨어짐
student[1]; // 123, 가독성 떨어짐
const [name, age] = student; // 구조분해할당하여 사용하면 가독성 up!