나는 일하고있는 프로젝트를 문서화하기 위해 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
*/
은 내가 원하는 동작을 얻을 것입니다. 그러나 이것은 일을하는 매우 어수선한 방법 인 것처럼 보이고 생성 된 링크는 꽤 멀리 떨어져 있습니다.
긴 축적 죄송과 내가 같은 문제에서 많이 와서 내 문서 노력 :