2017-01-22 1 views
-5

함수 인수가 어떤 인수 및 인수 유형을 정의 할 수있는 방법이 있습니까? 예를 들어 :선언에 액세스 할 수없는 함수에 대한 인터페이스 정의

enter image description here

나는 인터페이스가 boundTransportFn을 위해 무엇 선언 타이프 라이터를 사용하고 싶습니다. 이 인수의 유형은 함수이지만, TypeScript를 사용하여 함수가 취하는 인수를 정의하는 방법은 무엇입니까?

중요 :이 함수 (boundTransportFn)는 내가 액세스 할 수없는 사용자 제공 함수입니다. 즉, 나는 boundTransportFn 선언에 대한 액세스 권한이없는, 내가 가진 모든 매개 변수를

+0

당신이 코드를 스크린 샷으로 포함 시켰기 때문에 대부분의 downvotes가 주어 졌다고 믿습니다. 실제로 왜 _itself_ 코드 대신 _picture_ 코드를 포함 시키려고합니까? 기억하십시오. 도움을 청하는 것이고, 사람들은 당신을 도울 것입니다. 가능한 한 쉽게 도와 줄 수 있어야합니다. 아무도 손쉽게 코드를 입력하여 문제를 확인하는 대신 문제를 단순히 복사하여 붙여 넣을 수 있습니다. StackOverflow에는 코드 서식 지정 및 구문 강조 표시 기능이 있습니다. 질문의 내용은 훌륭합니다, IMO. –

+0

그 때 downvoter는 그것을 언급해야한다; 의견을 보내 주셔서 감사합니다; 나는 아직도 내가 그 질문에 대한 좋은 대답을 가지고 있다고 생각하지 않는다. – Olegzandr

답변

1

는 내가 제대로 질문을 이해한다면 모르겠지만, 여기에 두 개의 인수를 복용 함수 인수 선언 할 수있는 방법 - anystring - 그리고 void를 반환 (즉, 내가 함수의 유형을해야한다고 생각 무엇 난 당신의 코드를 볼 때) 수 :

return function (boundTransportFn: (a: any, key: string) => void) { 
} 

또한 handbook 섹션 "함수 타입 작성"을 참조하십시오.

+0

아, 이것은 더 좋은 대답 (감사)일지도 모른다! – Olegzandr

2

이다 예,이 : 이것은 official Typescript handbook에서 바로오고있다

interface SearchFunc { 
    (source: string, subString: string): boolean; 
} 

let mySearch: SearchFunc; 
mySearch = function(source: string, subString: string) { 
    let result = source.search(subString); 
    return result > -1; 
} 

참고. ;-)

그래서, 당신의 예를 다음과 같이하십시오 MyClass.myMethod()

interface BoundFunc { 
    // Put your definition here 
} 

// Then, somewhere else: 
export class MyClass { 

    myMethod(boundTransportFn: BoundFunc) { 
    return function(boundTransportFn) { 
     // ... 
    } 
    } 

} 

사용자는 BoundFunc 인터페이스를 준수해야합니다.

+0

TS 문서에서 찾을 수 없습니다! 고마워요 – Olegzandr

+0

그러나 질문에 설명 된 상황에서이 방법이 효과가 있습니까? 이 함수 (boundTransportFn)는 내가 액세스 할 수없는 사용자 제공 함수입니다. 즉, boundTransportFn 선언에 액세스 할 수 없습니다. 매개 변수 만 있으면됩니다. – Olegzandr

+0

질문을 이해할 수 있는지 잘 모르겠습니다. 당신의 코드에서'boundTransportFn' 함수에 타입을 추가하는 것은'Function'이라는 단어를 당신의 코드에서 선언 한 인터페이스의 이름으로 대체하는 것입니다. 코드 조각에 많은 문맥을 제공하지는 않지만'boundTransportFn'을 매개 변수로받는 메소드 내에 있다고 가정하면 메서드를 호출하는 모든 사용자는 올바르게 형식화 된 매개 변수를 제공해야하거나 TypeScript 컴파일러가 불평 할 수 있습니다. 말이된다? – AngularChef

관련 문제