2014-03-13 2 views
3

JavaScript 라이브러리가 "매직"할수록 문서 생성기를 사용할 가능성이 줄어 듭니다.매개 변수 이동 및 "다형성"을 지원하는 JavaScript 설명서 생성기가 있습니까?

매개 변수 이동/매개 변수 다형성이있는 함수를 문서화 할 수있는 문서 생성기는 누구나 알고 있습니까? 다음과 같이 호출 할 수 있습니다

function example(required, optional, callback) { 
    if(typeof optional === 'function' && typeof callback === 'undefined') { 
     callback = optional; 
     optional = 'DEFAULT VALUE'; 
    } 

    // do work here 
} 

은 :

example(required, optional, function() { 
    // do work 
}); 

example(required, function() { 
    // do work 
}); 

어떤 제안은 "일반적인 주석/문서 블록을 사용"을 제외하고, 감사합니다.

는 관련이 있지만, 아니 중복 경우 : @name fun @name fun^2Document generic type parameters in JSDOC

+0

나는 정말로 그것을 테스트 할 수 없기 때문에 나의 대답을 업데이트했다. 어쩌면 JSDOC이 과부하를 지원합니까 –

답변

4

It looks like JSDoc supports overloading of functions 내 생각은 다음과 귀하의 경우에, 그러나 당신의 의도를 명확하게

/** 
    @name example 
    @function 
    @param {string} required 
    @param {Function} callback 
*/ 
/** 
    @name example^2 
    @function 
    @param {string} required 
    @param {string} [optional='DEFAULT VALUE'] 
    @param {Function} callback 
*/ 
function example() { 
    if(typeof optional === 'function' && typeof callback === 'undefined') { 
     callback = optional; 
     optional = 'DEFAULT VALUE'; 
    } 

    // do work here 
} 

을 전달, 나는 그것이있을 거라고 생각 선택 매개 변수를 마지막으로 전환 한 경우 가장 쉽다. 그러면 과부하가 필요하지 않을 것이다.

/** 
* @param required 
* @param {Function} callback 
* @param {String} [optional='DEFAULT VALUE'] 
*/ 
function example(required, callback, optional) { 
    if (typeof optional === 'undefined') { 
     optional = 'DEFAULT VALUE'; 
    } 
    // do work here 
} 
+1

아직 테스트하지 않았지만 해결 방법 외에도 내 요구 사항을 만족하는 솔루션을 제안했습니다. 이것이 내가 대답 할 때 찾는 것입니다. 너의 숙고 해줘서 고마워. – Jeffrey