首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在为VS代码intellisense导入时避免eslint错误(无未使用的-vars)

在为VS代码intellisense导入时避免eslint错误(无未使用的-vars)
EN

Stack Overflow用户
提问于 2019-08-09 20:27:43
回答 3查看 2.9K关注 0票数 8

在使用ES6类时,我希望在VS代码中使用带有代码完成的Intellisense。为了实现这一点,我导入了一个类并添加了JSDoc标记,以告诉VS代码这个类是在特定方法中使用的。这很好,但是当我打开这个规则时,ESLint会抱怨导入语句中没有未使用的-vars。原因是导入的类仅在JSDoc中引用,而不是在实际的JavaScript代码中引用。

考虑一下这个例子:

class1.js

代码语言:javascript
复制
import Class2 from './class2'; // ESLint complains about no-unused-vars here

export class Class1 {
    /**
     * @param {Class2} foo 
     */
    anotherMethod(foo) {
        foo.someMethod(); // Intellisense and code-completion works for foo.
    }
}

class2.js

代码语言:javascript
复制
export default class Class2 {
    someMethod() { }
}

是否有任何方法可以避免在不完全关闭导入的情况下(仅)在JSDoc中引用导入的非未使用的-vars错误?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-09 21:03:57

注意:您应该小心使用这个,以防导入有副作用!(极少数带有ES模块,但仍有可能)

代码语言:javascript
复制
import Class2 from './class2'; // eslint-disable-line no-unused-vars

你不能在JavaScript本身就这样.

在TypeScript中,您可以:

代码语言:javascript
复制
// @ts-ignore
type Class2 = import ("./class2").default;

在不影响运行时的情况下引用类的正确方法是在JSDoc中使用类型记录样式的导入。我的VSCode似乎没有选择Class2的类型(悬停在它上面,它只是说‘任何’类型),但是你可能会有更多的运气。

下面是操作步骤:

代码语言:javascript
复制
/**
 * @typedef {import("./class2").default} Class2
 * @param {Class2} view
 */

或者简单地说:

代码语言:javascript
复制
/**
 * @param {import("./class2").default} view
 */
票数 13
EN

Stack Overflow用户

发布于 2021-02-18 14:28:16

您可以使用eslint-plugin-jsdoc实现这一点。

代码语言:javascript
复制
npm install --save-dev eslint-plugin-jsdoc

然后添加到您的.eslintrc文件:

代码语言:javascript
复制
"rules": {
    "jsdoc/no-undefined-types": 1
},
"plugins": [
    "jsdoc"
]

来自文档

no-undefined-types 检查是否定义了jsdoc注释中的类型。这可以用于检查未导入的类型。 启用此规则时,jsdoc注释中的类型将解析为已使用的变量,即不会被未使用的-vars标记为未使用。

票数 8
EN

Stack Overflow用户

发布于 2022-11-22 17:46:11

可以使用下划线前缀来绕过linter:

代码语言:javascript
复制
import {Class2 as _tsdoc_Class2} from './class2'; 

/**
 * @param {_tsdoc_Class2} view
 */
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57436725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档