[英]Refer to type in different file in JSDoc without importing
我正在 Visual Studio Code 中编写 JavaScript (ES6) 代码,并按照VSCode 文档中的说明启用了 VSCode 的类型检查。
当引用在另一个文件中定义的类型(在下面的示例中为Track
)时,我收到类似[js] 无法在 JSDoc 引用中找到名称 'Track'的错误,除非我导入它。 当我导入这个类型时,我从 ESLint 得到一个错误: [eslint] 'Track' is defined but never used。 (没有未使用的变量)
我不想禁用 ESLint 规则。 有没有办法只为 VSCode 中的类型检查导入类型?
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) : [];
}
...
只是为了更新此主题:
使用typescript@2.9,您将能够导入自动导出的JSDoc typedef
。
通过一个真实的工作示例来看看这个问题 。 您还可以沿着webpack的代码查看他们如何使用JSDoc和typescript ti静态地填充他们的纯JS源代码库。 这是他们在JSDoc约定中遇到问题的问题 。
禁用es-lint警告的解决方法:在未使用导入的行尾使用//eslint-disable-line no-unused-vars
注释。
import Track from './Track'; //eslint-disable-line no-unused-vars
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) : [];
}
...
您可以使用import("%YOUR_LIB%").%TYPE%
:
export default class TrackList {
/**
* Creates a new track list.
* @param {Iterable<import("./Track").Track>} tracks the tracks to include
*/
constructor(tracks) {
this._tracks = tracks ? Array.from(tracks) : [];
}
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.