我使用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
});
快速谷歌搜索建议使用function (new: Foo)作为参数描述。但是,这种方法会丢失构造函数参数和/或类可能具有的静态方法的自动完成功能。
我希望的构造应该类似于这个:
require(['foo'],
/** @param {Type<Foo>} Foo */
function(Foo) {
Foo.<cursor> <-- gives me an autocompletion for statics of Foo
});
有没有办法做到这一点?