【发布时间】:2018-06-07 05:02:10
【问题描述】:
我正在 Visual Studio Code 中编写 JavaScript (ES6) 代码并启用了 VSCode 的类型检查,如 VSCode docs 中所述。
当引用在另一个文件中定义的类型时(以下示例中的 Track),我在 JSDoc 引用中收到类似 [js] Cannot find name 'Track' 的错误这种类型,除非我导入它。当我导入这种类型时,我从 ESLint 收到一个错误:[eslint] 'Track' is defined but never used。 (no-unused-vars)
我不想禁用 ESLint 规则。有没有办法为 VSCode 中的类型检查导入类型only?
import Track from "./Track";
export default class TrackList {
/**
* Creates a new track list.
* @param {Iterable<Track>} tracks the tracks to include
*/
constructor(tracks) {
this._tracks = tracks ? Array.from(tracks) : [];
}
...
【问题讨论】:
-
您是否尝试在 ESLint 配置中将
Track添加到 globals 中? -
或 ESLint 中的 disable rules with comments
-
@Alex 将
Track添加到全局变量并没有帮助。 JSDoc 需要对源代码的引用。禁用规则会有所帮助,但我不喜欢完全禁用规则,因为这会限制 ESLint 的使用。通过 varsignorepattern 选项仅对某些名称禁用它,但在每个其他文件中使用此模式会相当难看。 -
@ralfstx 您是否尝试过 Alex 的注释语法链接以禁用特定行或部分的规则?我无法让单行版本工作,但我能够使用禁用注释,然后导入,然后启用注释,我得到了两全其美 - eslint 检查其他所有内容,并且 Intellisense 使用正确的类型信息。
标签: javascript visual-studio-code jsdoc