함수
함수의 타입 정의
- 함수의 파라미터(매개변수) 타입
- 함수의 반환 타입
- 함수의 구조 타입
타입 선언
// javascript
function sum(a, b) {
return a + b;
}
// typescript
function sum(a: number, b: number): number {
return a + b;
}
tip
return할 자료가 없는 경우 void
사용
function myfung(x: number): void {
return x * 2; // error
}
함수의 인자
타입스크립트에서 함수의 인자는 모두 필수 값이며 추가로 인자를 받을 수도 없다. 따라서, 함수의 매개변수를 설정하면 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); // 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
rest 문법은 다음과 같이 사용할 수 있다.
function sum(a: number, ...nums: number[]): number {
const totalOfNums = 0;
for (let key in nums) {
totalOfNums += nums[key];
}
return a + totalOfNums;
}