MellowHoney 2023. 10. 30. 10:11
728x90
반응형

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}`;

함수의 매개변수

  • 함수에 주어진 인자의 개수는 함수가 기대하는 매개변수의 수와 일치해야 함
  • 기본값 설정
    • 값을 제공하지 않거나, undefined로 했을 때에 매개변수의 값 할당 가능
    function sum(a: number, b: number = 10): number {
        return a + b;
    }
    
  • 매개변수의 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

가변 인자 함수

  • ...부호로 기본 인자 뒤에 가변 인자를 설정하여 함수 선언 가능
  • 가변 인자 함수의 매개변수는 무한과 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))
반응형