function add(x: number, y: number): number {
return x + y;
}
각 파라미터 타입과 반활될 타입을 지정
할 수 있다. 타입스크립트는 반환 문을 보고 반환 타입을 추론
할 수 있으므로 반환 타입을 생략 할 수 있다.
함수는 매개변수 타입, 반환 타입
을 가진다. 전체 함수 타입을 작성하려면 이 두 가지 타입이 필요하다.
function greet(name: string) {
console.log('Hello, ' + name.toUpperCase());
}
// 오류 발생
// Argument of type 'number' is not assignable to parameter of type 'string'.
greet(42);
함수를 선언할 때 각 매개변수 뒤에 타입을 지정할 수 있다. 매개변수에 타입이 지정되어 있다면 함수를 호출할 때 넣은 인자들을 검사한다.
function getFavoriteNumber(): number {
return 26;
}
매개변수 목록 뒤에 반환 타입을 추가
수 있다. 하지만 타입스크립트는 return 문을 기반으로 함수의 반환 타입을 추론
하기 때문에 일반적으로는 반환 타입을 지정하지 않아도 된다.
함수에 주어진 인자는 함수가 기대하는 매개변수의 수와 일치해야 한다.
function getNames(firstName: string, lastName: string) {
return firstName + ' ' + lastName;
}
getNames('nam'); // 오류, 너무 적은 매개변수
getNames('nam', 'sangho'); // 정상 작동
getNames('nam', 'sangho', 'ho');// 오류, 너무 많은 매개변수
타입스크립트에서 선택적으로 매개변수를 사용하고 싶다면 매개변수 이름 끝에 ?
를 붙여서 해결할 수 있다.
function getNames(firstName: string, lastName?: string) {
if(lastName) return firstName + ' ' + lastName;
else firstName;
}
getNames('nam'); // 정상 작동
getNames('nam', 'sangho'); // 정상 작동
getNames('nam', 'sangho', 'ho');// 오류, 너무 많은 매개변수
기본 매개변수를 사용해서 값이 주어지지 않은 선택적 매개변수가 undefined가 아닌 기본 값을 갖게 할 수 있다.
function getNames(firstName: string, lastName?: string = 'sanghow') {
return firstName + ' ' + lastName;
}
때로는 다수의 매개변수를 그룹 지어 사용하거나, 얼마나 많은 매개변수를 취할지 모를 때가 있다.
타입스크립트에서는 이 인자들을 하나의 변수로 모을 수 있다.
function getNames(firstName: string, ...restOfName: string[]) {
return firstName + ' ' + restOfName.join(' ');
}