我在Visual Studio Code中编写JavaScript(ES6)代码并启用了VSCode的类型检查,如VSCode docs中所述。
当引用在另一个文件中定义的类型(在下面的示例中为Track
)时,我收到类似 [js]的错误在JSDoc中找不到名称'Track'除非我导入它,否则引用该类型。当我导入此类型时,我从ESLint收到错误: [eslint]'Track'已定义但从未使用过。 (无未使用-VARS)
我不想禁用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) : [];
}
...
答案 0 :(得分:2)
只是为了更新此主题:
使用typescript@2.9,您将能够导入自动导出的JSDoc typedef
。
使用真实的工作示例查看this issue。 您还可以沿着webpack的代码查看他们如何使用JSDoc和typescript ti静态地填充他们的纯JS源代码库。这里是their issue,其中包含JSDoc约定,您可以在其中获得内容。
答案 1 :(得分:1)
我有类似的问题,这就是我如何解决它。
//file.d.ts
export interface Foo {
bar: number;
}
export as namespace Baz;
这样做会使Baz
名称空间全局化,因此您可以在任何地方使用它而无需导入
/**
* @param {Baz.Foo} arg
*/
function test(arg) {
}
答案 2 :(得分:0)
禁用es-lint警告的解决方法:在未使用导入的行末使用expo start -c
注释。
//eslint-disable-line no-unused-vars