首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >引用JSDoc中不同文件的类型,而不导入

引用JSDoc中不同文件的类型,而不导入
EN

Stack Overflow用户
提问于 2017-12-26 10:22:20
回答 4查看 5.4K关注 0票数 20

我正在VSCode中编写JavaScript (ES6)代码,并启用了VSCode文档中解释的VSCode的类型检查。

当引用在另一个文件中定义的类型时(下面的示例中是Track),我会得到一个错误,比如js在JSDoc引用中找不到名称“Track”,除非我导入它。当我导入这个类型时,我从eslint中得到一个错误:eslint 'Track‘是定义的,但从未使用过。(没有未使用的-瓦尔斯)

我不想禁用ESLint规则。是否有一种方法只为VSCode中的类型检查导入类型?

代码语言:javascript
运行
复制
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) : [];
}
...
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-11-12 13:02:41

您可以使用import("%YOUR_LIB%").%TYPE%

代码语言:javascript
运行
复制
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) : [];
}
...
票数 4
EN

Stack Overflow用户

发布于 2018-01-26 03:39:03

我也有类似的问题,我就是这样解决的。

代码语言:javascript
运行
复制
//file.d.ts
export interface Foo {
    bar: number;
}

export as namespace Baz;

这样做将使Baz命名空间具有全局性,这样您就可以在任何地方使用它,而无需导入

代码语言:javascript
运行
复制
/**
 * @param {Baz.Foo} arg 
 */
function test(arg) {

}

现在,您可以在VSCode中获得intellisense和类型检查。

票数 13
EN

Stack Overflow用户

发布于 2018-05-09 14:21:27

为了保持这个主题的更新:

使用打字本@2.9,您将能够导入自动导出的JSDoc typedef

使用一个实际的工作示例查看一下本期。此外,您也可以沿着webpack的代码,看看他们是如何使用JSDoc和类型抄本ti静态切赫,他们纯粹的JS源代码库。下面是带有他们的问题约定的JSDoc,您可以在这里获得内部信息。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47977122

复制
相关文章

相似问题

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