[Typescript] 02. 함수 타입 표현식
포스트
취소

[Typescript] 02. 함수 타입 표현식

    1
    2
    3
    4
    5
    6
    7
    
    function greeter(fn: (a: string) => void) {
      fn("Hello, World");
    }
    function printToConsole(s: string) {
      console.log(s);
    } 
    greeter(printToConsole);
    

    위 예제처럼 매개변수로 함수가 넘어오는 경우, 함수 갖고있는 매개변수와 해당 함수가 return하는 값의 Type을 설정하여, 해당 기능을 하는 함수들만 매개변수로 받을 수 있다.
    함수 greeter는 매개변수로 string Type의 변수를 한 개 받는 Return Typevoid인 함수 printToConsole을 정상적으로 받는 모습을 볼 수 있다.
    그런데 아무리 봐도 매개변수 자리에 fn: (a: string) => void가 오는건 솔직히 부담스럽다. 너무 길고 복잡하다.

    1
    2
    3
    4
    
    type GreetFunction = (a: string) => void;
    function greeter(fn: GreetFunction) {
      // ...
    }
    

    그렇다면 이건 어떤가? type 선언은 numberboolean과 같은 Type을 직접 커스터마이징 할 수 있는 선언문이다.
    일반 변수나 상수를 정의할 때와 동일한 방법을 사용하는데, 연산자 뒤에 들어오는 값은 위 코드와 같은 함수의 선언부객체가 들어갈 수 있다.

    이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.