2015-01-23 3 views
2

나는 일하고있는 프로젝트를 문서화하기 위해 JSDoc을 사용하기로 결정했다. 여기에 사용 가이드와 질문을 읽는 동안 나는 아직도 내가 JSDoc의 핵심 개념을 파악하고 있지 않다 느낌 나는 다음 예제 내 무능력 설명 : 여기에 http://jsfiddle.net/zsbtykpv/JSDoc 콜백 함수에 연결

/** 
* @module testModule 
*/ 

/** 
* @constructor 
*/ 
var Test = function() { 
    /** 
    * @callback myCallback 
    * @param {Object} data An object that contains important data. 
    */ 

    /** 
    * A method that does something async 
    * @param {myCallback} cb a callback function 
    * @return {boolean} always returns true 
    */ 
    this.method = function(cb) { 
     doSomethingAsync(function(data) { 
      cb(data); 
     }); 
     return true; 
    } 

} 

module.exports = Test; 

을, 나는, 모듈을 정의 표명 생성자를 만들고, 콜백을 매개 변수 중 하나로 가져 오는 메소드를 문서화했습니다. 아주 간단하게 들리며 사용 가이드 http://usejsdoc.org/에 의해 설정된 지침을 따르는 것으로 보입니다.

하지만 필자가 이해하지 못하는 몇 가지 이유 때문에 (아마도 핵심 개념이 아닙니다.) 콜백 myCallback을 Test 클래스 대신 testModule의 멤버로 표시합니다. 모듈이 아닌 클래스의 멤버가 기본이되어서는 안됩니까? 이것은 또한 JSDoc이 콜백 정의에 대한 링크를 만드는 것을 방지하는 것으로 보이는데, 이것은 그리 재미있는 일이 아닙니다.

지금 내가 있다면 쓸 것을 깨닫게 :

/** 
* @callback module:testModule~Test~myCallback 
* @param {Object} data An object that contains important data. 
*/ 

/** 
* A method that does something async 
* @param {module:testModule~Test~myCallback} cb a callback function 
* @return {boolean} always returns true 
*/ 

은 내가 원하는 동작을 얻을 것입니다. 그러나 이것은 일을하는 매우 어수선한 방법 인 것처럼 보이고 생성 된 링크는 꽤 멀리 떨어져 있습니다.

긴 축적 죄송

과 내가 같은 문제에서 많이 와서 내 문서 노력 :

답변

0

에 당신의 도움에 미리 감사드립니다.

/** 
* @callback module:testModule~Test~myCallback 
* @param {Object} data An object that contains important data. 
*/ 

/** 
* @param {myCallback} cb {@link module:testModule~Test~myCallback|myCallback}: a callback function 
* @return {boolean} always returns true 
*/ 

나는 그 조금 더 실망 유형에의 실현, 그러나 myCallback을 문서화 : 당신은 더 좋은 보이는 링크를 원하는 경우에, 당신은 항상 설명에 {@link}을 추가하고 그냥이 같은 @type의 정식 이름을 사용할 수 있습니다 모듈이 아닌 클래스의 멤버로서 링크가 멋지게 보인다.

실제로 링크를 @type에 넣고 콜백을 문서화하는 방법에 대해 신경 쓰지 않는다면이 작업을 수행 할 수 있습니다.이 작업은 조금 덜 장황합니다 (그리고 내 프로젝트를 위해 무엇을하기로 결정했는지) 적절히 모듈의 부재로 myCallback 링크 및 문서화

/** 
* @callback myCallback 
* @param {Object} data An object that contains important data. 
*/ 

/** 
* @param {module:testModule~myCallback} cb a callback function 
* @return {boolean} always returns true 
*/ 

.