Call Signatures
•
함수위에 마우스를 올려뒀을 때 뜨는 타입
생성
// 기본 함수
function sum(a: number, b: number) {
return a + b;
}
// 일반 함수 선언식
function world(name: string):string {
return `hello ${name}`;
}
// 일반 함수 표현식
let world2 = function (name: string):string {
return `hello ${name}`;
}
// 익명함수
type Add = (a:number, b:number) => number;
// const add = (a:number, b:number) => a+b;
const add:Add = (a, b) => a + b;
//화살표 함수 표현식
const world3 = (name: string): string => {
return `hello ${name}`;
}
// 단축형 화살표 함수 표현식
const world4 = (name: string): string => `hello ${name}`;
TypeScript
복사
함수의 매개변수
•
함수에 주어진 인자의 개수는 함수가 기대하는 매개변수의 수와 일치해야 함
•
기본값 설정
◦
값을 제공하지 않거나, undefined로 했을 때에 매개변수의 값 할당 가능
function sum(a: number, b: number = 10): number {
return a + b;
}
TypeScript
복사
•
매개변수의 default 값을 설정 가능
•
가변 인수 함수를 만들 수 있음
•
함수 인자 수 = 매개변수 수
선택적 매개변수
•
인터페이스의 선택적 프로퍼티와 동일
•
변수명 뒤에 ?를 사용해서 옵션 변수를 추가
•
필수 매개변수 뒤에 위치
function add(a: number, b?: number): number {
if(b) return a + b;
return a;
}
console.log(add(1, 2))
console.log(add(3))
console.log(add(1, 2, 3)) // error
TypeScript
복사
가변 인자 함수
•
...부호로 기본 인자 뒤에 가변 인자를 설정하여 함수 선언 가능
•
가변 인자 함수의 매개변수는 무한과 null을 둘다 허용한다.
function buildName(firstName: string, ...AfterName: string[]) {
return console.log(`${AfterName? firstName + ' ' + AfterName.join(' ') : firstName }`);
}
buildName('Tom'); // Tom
buildName('Tom', 'A', 'B'); // Tom A B
function add(a: number, b: number, ...c: number[]): number {
let sum: number = a + b;
if(c) {
for (let i: number = 0 ; i < c.length; i++) {
sum += c[i]
}
}
return sum;
}
console.log(add(2, 1))
console.log(add(8, 8, 6, 1, 9, 6))
TypeScript
복사