ral*_*stx 11 javascript jsdoc visual-studio-code
我正在Visual Studio Code中编写JavaScript(ES6)代码,并启用了VSCode的类型检查,如VSCode文档中所述.
当引用在另一个文件中定义的类型时(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) : [];
}
...
Run Code Online (Sandbox Code Playgroud)
我有一个类似的问题,这是我解决它的方法。
//file.d.ts
export interface Foo {
bar: number;
}
export as namespace Baz;
Run Code Online (Sandbox Code Playgroud)
这样做将使Baz命名空间全局化,因此您可以在任何地方使用它而无需导入
/**
* @param {Baz.Foo} arg
*/
function test(arg) {
}
Run Code Online (Sandbox Code Playgroud)
小智 5
只是为了保持这个主题的更新:
使用typescript@2.9,您将能够导入typedef自动导出的JSDoc 。
用一个真实的工作示例来看看这个问题。你也可以浏览 webpack 的代码,看看他们如何使用 JSDoc 和 typescript ti 静态检查他们的纯 JS 源代码库。这是他们与 JSDoc 约定的问题,您可以从中获得灵感。
您可以使用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) : [];
}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |