18

내가 타이프 라이터 정말 흥분하고있다. 함수 매개 변수의 유형을 어떻게 설정합니까?타이프 라이터 - 고차 기능 유형

function twoMoreThanYou(calculateANumber: Function):number { 
    return calculateANumber(4) + 2; 
} 

function double(n:number):number { 
    return n*2; 
} 

console.log("TWO MORE", twoMoreThanYou(double)) 

calculateANumber을 어떻게 입력하면 좋을까요? 나는 그것이 숫자를 취하고 숫자를 반환하는 함수 여야한다고 지정하고 싶다. 내 고차 함수가 더 읽기 시그니처 할 수 있도록

나는 그 유형에 대한 "인터페이스"또는 일부 속기를 할 수 있습니까?

답변

25

이 모두 작업

interface NumberFunction extends Function { 
    (n:number):number; 
} 

function twoMoreThanYou(calculateANumber: (n:number)=>number):number { 
    ... 
} 

function twoMoreThanYou(calculateANumber: NumberFunction):number { 
    ... 
} 
+7

당신은'NumberFunction' 인터페이스와'twoMoreThanYou' 함수의 반환 유형을 지정할 필요가 없습니다. 타입 추론! – asawyer

+4

OMG 나는 타이프 스크립트를 이미 좋아합니다. –