繁体   English   中英

VS Code JavaScript 使用 ESLint 自动完成

[英]VS Code JavaScript Autocomplete with ESLint

这是我的代码,它按预期工作。

function Afunction(v) {
    this.v = v;
}
Afunction.prototype.vlog = function () { console.log(this.v); };

function extend(props) {
    for (const key in props) {
        const prop = props[key];
        Afunction.prototype[key] = prop;
    }
}

extend({
    someOther: function () { console.log("someOther"); },
    someMore: function () { console.log("someMore"); }
});

var obj = new Afunction();
obj.vlog();
obj.someOther();
obj.someMore();

和 output

some value
someOther
someMore

但在我的 VS Code 中仅显示自动完成建议中的vlog someOthersomeOther不在那里显示。

在此处输入图像描述

我在 jQuery 中了解了扩展jQuery 我尝试以我的方式实现它。 但是我面临这个自动完成问题,我的 object 中有很多 function 属性,所以如果自动完成工作会很棒。 否则我必须像这样写所有属性 function Afunction.prototype.someOther

如果有任何方法可以制作地图/界面文件,我看到ESLint文件夹中有很多.ts文件,所以我曾经在那里添加了所有道具,它向我展示了建议。

ESLint 静态分析您的代码以快速发现问题。 VS Code 中的自动完成是由 VSCode智能感知完成的,这不能运行静态工作的代码。

您可以遵循以下文档: https://docs.microsoft.com/en-us/visualstudio/ide/javascript-intellisense?view=vs-2022

VSCode 支持的 JSdoc: https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html

你可以像下面这样使用@typedef

/**
 * @typedef  {Object} SpecialType - you doc here
 * @property {Function} someOther - you doc here
 * @property {Function} someMore  - you doc here
 */

/* All your code above place here */

/** @type {SpecialType} */
var obj = new Afunction();
obj.someOther();
obj.someMore();

在此处输入图像描述

注意: VSCode 目前不支持@memberof否则我们也可以使用它。 https://jsdoc.app/tags-memberof.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM