使用特殊注释对对象进行智能感知

Intellisense on object using special comments

在 Sublime 或 VS Code 中,您可以定义一个特殊注释(例如 DocBlockr or JSDocs),Intellisense 会识别它并为您提供智能工具提示功能。

我有一个带有选项参数的函数。这是一个对象,可以有几个属性,可以包含函数、字符串、整数等。一个例子是:

function foo(options){
    options = options || {};

    if(options.foo){
        console.log(options.foo);
    }
    if(options.bar) {
        console.log(options.bar());
    }
}
foo({foo: 'foo', bar: function(){return 'bar';}});

我可以添加 DocBlockr 评论,但这只会产生一个工具提示,表明它需要一个对象。

是否可以对该选项对象进行某种定义,以便使用智能感知弹出?

对于 Sublime Text 3,你可以使用我的 JavaScript Enhancement plugin (you could find it also on Package Control) that will turn it into a JavaScript IDE like (It uses Flow under the hood). In your case, using Flow type annotations,你可以使用此代码来获得你想要的:

//@flow

function foo(options /*: { foo: string, bar: function} */){
    options = options || {};

    if(options.foo){
        console.log(options.foo);
    }    
    if(options.bar) {
        console.log(options.bar());
    }
}

foo()

因此,在 Sublime Text 3 编辑器上,您将得到如下内容:

同样在多行(/* :需要和参数在同一行):

此外,该插件不仅提供了智能 javascript 自动完成功能,还提供了许多有关创建、开发和管理 javascript 项目的功能(real-time 错误、代码重构等.).