?
꼭 전달하지 않아도 되는 인자가 있을 경우 '?'를 작성
function printName(firstName: string, lasetName?: string) {
console.log(firstName);
console.log(lasetName); // 전달하지 않으면 undefined
}
printName('Steve', 'Jobs');
printName('Steve');
printName('Steve', undefined);
const point: {x:number, y?:number} = {x:1, y:1};
const point: {x:number, y?:number} = {x:1}; // y 프로퍼티가 옵셔널, 에러 발생 X
const point: {x:number, y?:number} = {x:1, y:"1"}; // y의 value가 다름, 에러
function sum(x:number, y?:number) {
return x + (y || 0)
}
전달하지 않으면 설정해둔 default 값이 들어감
function printMessage(message: string = 'default message') {
console.log(message)
}
printMessage()
인자 개수 제한 없으며 인자들을 배열 형태로 받아올 수 있음
function addNumbers(...numbers: number[]): number {
return numbers.reduce((a, b) => a + b);
}
console.log(addNumbers(1, 2));
console.log(addNumbers(1, 2, 3, 4));
console.log(addNumbers(1, 2, 3, 4, 5, 0));