2017-10-28 1 views
0

매개 변수로 자체 형식의 요소를 가진 배열을 사용하는 재귀 적 typescript 함수 패밀리를 작성하려고합니다.Typescript - 재귀 함수 형식

function example(parameter:number, path: {(parameter:number, path:{/*what do I put here?!*/}[]):boolean;}[]) : boolean 
{ 
    return false; 
} 

이것은 내가 가진 함수를 호출 할 수 있음을 의미 : 나는 붙어 곳

let result = example(123, [example, example, anotherexample]); 

경로는 "어떤 것은 내가 여기에 배치해야합니까"부분입니다 /. 어떻게 든 typedef에 전체 함수 유형을 넣고 싶습니다. 또한 가독성을 높이기 위해서입니다. 당신은 명시 적으로 example의 유형을 선언하려면 :

답변

1

당신은 인터페이스로 example의 유형을 선언 할 수 있습니다, 그래서 당신은 path의 유형에 참조 할 수 있습니다 :

interface Example { 
    (parameter: number, path: Example[]): boolean 
} 

function example(parameter: number, path: Example[]): boolean { 
    return false; 
} 

demo on TypeScript Playground

UPD를 이것을 다음과 같이 쓸 수 있습니다 :

const example : Example = function (parameter: number, path: Example[]): boolean { 
    return false; 
} 

이것은 유형 오류에 대해 경고하지만, 그래서 당신은 선언 전에 그것을 참조 할 수 없을 것입니다. 인터페이스에 대한 자세한 내용은 체크 아웃 https://www.typescriptlang.org/docs/handbook/interfaces.html

+0

많은 감사를드립니다. 저는 typescript를 처음 접했기 때문에 함수 유형에 대한 인터페이스를 작성하는 방법을 잘 모릅니다. 따라서 여러분의 대답이 나를 크게 도와주었습니다. 작은 후속 조치 :이 유형을 기반으로 "함수 예제"를 선언하고 정의 할 수있는 방법이 있습니까? (어쩌면 더 많은 문제가 황갈색의 가치). '예 : Step =/* 지금은 무엇입니까? * /' – Moritz