2017-03-16 58 views
1

類型假設我一個js模塊jsdoc:參考的typedef-ED從其它模塊

// somewhere/foo.js 
/** 
* @module 
*/ 
/** 
* @typedef Foo 
* @type {object} 
* property {string} bar - some property 
*/ 

在有一個typedef類型是否有可能在其他模塊引用該類型,使得在HTML頁面通過jsdoc產生,類型顯示爲typedef-ed模塊的鏈接?

我想這個變化,但似乎沒有任何工作...

// somewhere_else/bar.js 
/** 
* @module 
*/ 
/** 
* @param {somewhere/foo/Foo} foo - some param 
*/ 
export default function doStuff(foo) { 
    ... 
} 

回答

1

這對我的作品......

// somewhere/foo.js 
/** 
* @module foo 
*/ 
/** 
* @typedef module:foo.Foo 
* @type {object} 
* @property {string} bar - some property 
*/ 

和...

// somewhere_else/bar.js 
/// <reference path="foo.js" /> 
/** 
* @module bar 
*/ 
/** 
* @param {module:foo.Foo} foo - some param 
*/ 
function doStuff(foo) { 
    //... 
}; 
+0

全在@typedef中限定模塊確實有效(我personnaly編寫了'@typedef {Object} module:foo/Foo',但這是一個有趣的事情。)但是:1/////rence path =「foo.js」/>'似乎不是必需的,我無法在任何地方找到它。 2 /如果模塊有一個很長的路徑(比如'somewhere/foo'),在任何地方打字都有點乏味,你知道有什麼竅門可以讓它變成別的嗎? – phtrivier

+0

@phtrivier 1.對不起,參考只是從我的測試中複製和粘貼,忽略它。 2.完全同意你,有點乏味;不幸的是,「別名」是我們記錄的方式(特別是原型)。事實上,它看起來並不那麼糟糕。我看到它的好處:使用這種方法或類型的開發人員會準確知道它在哪裏定義,所以它不僅幫助創建正確的文檔,而且在開發過程中查找有效的引用。還有一種方法是使用「@exports」,但我沒有發現這個選項,所以不能發表評論。 –