함수에서 세가지 타입을 정의할 수 있다.
- 함수의 파라미터(매개변수) 타입
- 함수의 반환 타입
- 함수의 구조 타입
함수의 인자
- 타입스크립트에서는 함수의 인자를 모두 필수 값으로 간주.
- 매개변수를 설정하면 undefined나 null이라도 인자로 넘겨야 한다.
- 컴파일러에서 정의된 매개변수 값이 넘어 왔는지 확인.
- 정의된 매개변수 값만 받을 수 있고 추가로 인자를 받을 수 없다.
function sum(a: number, b: number): number {
return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30); // error, too many parameters
sum(10); // error, too few parameters
만약 정의된 매개변수의 갯수 만큼 넘기지 않고 싶을 때는 ?를 이용한다.
function sum(a: number, b?: number): number {
return a + b;
}
sum(10, 20); // 30
sum(10, 20, 30) // error, too many parameters
sum(10); // 타입 에러 없음
매개변수 초기화는 ES6 문법과 동일.
function sum(a: number, b = '100'): number {
return a + b;
}
sum(10, undefined); // 110
sum(10, 20, 30); // error, too many parameters
sum(10); 110