![](/img/trans.png)
[英]How to annotate an optional parameter using Google Closure Compiler?
[英]Google Closure: How to annotate a parameter used as a constructor
我使用require.js進行依賴關系管理和Google Closure注釋,使我能夠自動完成(在WebStorm / IDEA中)。 我們非常依賴Backbone並以類似Java的方式開發我們的Javascript代碼 - 即使用靜態和實例方法。
遺憾的是如何正確地為函數參數編寫注釋,這些函數參數實際上是類 - 與new關鍵字一起使用的參數。
require(['foo'], function(Foo) {
var bar = new Foo();
});
WebStorm和/或Google Closure正確地假設它是Foo的一個實例,如果我按如下方式注釋參數:
require(['foo'],
/** @param {Foo} Foo */
function(Foo) {
Foo.<cursor> <-- gives me an autocompletion for an instance of Foo
});
快速谷歌搜索建議使用函數(new:Foo)作為參數描述。 但是,這種方法會丟失構造函數參數和/或類所具有的靜態方法的自動完成。
我希望的構造應該類似於這個:
require(['foo'],
/** @param {Type<Foo>} Foo */
function(Foo) {
Foo.<cursor> <-- gives me an autocompletion for statics of Foo
});
有沒有辦法實現這個目標?
您正在尋找
/** @param {function(new: Foo)} someConstructor */
您還可以通過執行類似操作來指定構造函數的參數
function(new: Foo, ArgType1, ArgType2)
從有關段落文檔 :
運營商名稱:功能
new
類型:語法示例:
{function(new:goog.ui.Menu, string)}
一個函數,它接受一個參數(一個字符串),並在使用'new'關鍵字調用時創建一個新的
goog.ui.Menu
實例。指定構造函數的構造類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.