2017-02-13 113 views
0

我有一個如下所示的函數。IDE不識別使用JSDoc的方法

/** 
* @type Object 
* @return {typeof hello} hello 
*/ 

function hello() { 

    /** 
    * Prints some words 
    * @param {string} words - words to print 
    * @returns {string} words you said 
    */ 
    function sayIt(words) { 
     console.log(words); 
     return 'You said: ' + words; 
    } 
    return { 
     sayIt: sayIt 
    } 
} 

我想它,以便當我輸入我的hello. IDE會告訴我,該方法sayIt可用,它需要在參數words爲字符串。

此功能作爲模塊加載到雲端系統中,您可以從另一個腳本調用它的唯一方法是導入hello模塊並使用它,如hello.sayIt('hello')。所以基本上我想知道是否有一種方法來格式化JSDoc,以便我的IDE知道sayIt方法可用於hello對象,並且它將words參數用作字符串。目前它知道sayIt是一種方法,但不知道它與hello對象關聯,所以我沒有得到任何自動完成幫助。

+0

所以,你一直在說「IDE」,但你真正的意思是WebStorm,從標籤判斷。有關於如何在幫助中正確添加JSDoc的文檔:https://www.jetbrains.com/help/webstorm/2016.3/creating-jsdoc-comments.html –

回答

0

即使您的代碼沒有JSDOC,Webstorm也應該能夠爲您提供自動更正。

檢查是否有module.exports = hello而不是module.exports = hello()

如果此建議不工作或不適用,我會建議重構你的代碼

我建議你這樣做來代替。

return { 
    sayIt: function(words) { 
    console.log(words); 
    return 'You said: ' + words; 
    } 
}