导入符号时,VSCode 仅呈现指向另一个文件的 JSDoc 链接

Shy*_*gam 8 jsdoc typescript visual-studio-code

我尝试使用 JSDoc@link注释来引用不同文件上的类,但 VSCode 无法识别它,并且工具提示呈现为纯文本。

我找到了一种解决方法,即将符号导入到我的文件中。但是,我不想导入某些内容只是为了让它出现在文档中。

屏幕截图

我该如何让它发挥作用?

TDLR

同一文件中的链接可以正常工作。问题仅在于跨文件链接,但VSCode 的文档@link中没有对该指令主题的相关引用。

我在跑:

  • VSCode 1.58.2
  • 打字稿 4.3.5

Kel*_*ofs 2

这不正是您所期望的工作方式吗?如果您添加一个符号链接,VS Code(或者任何 IDE,实际上)需要知道您到底想要什么符号。

如果他们只需要猜测符号,他们不仅必须遍历所有可能的类型文件,而且还会有类,因为例如 20 个依赖项(甚至单个依赖项中的 20 个文件)都会创建一个export interface Options例如。

也许可以使用import('module').Exportas 类型。


或者,您可以使用TypeScript 3.5 中添加的仅类型导入:

import type { SomeType } from 'some-module';

// Works fine, since we're only using the type
type UsingTheType = Partial<SomeType>;

// Errors, because we didn't import the actual value
// (assuming it should be a value anyway, e.g. a class)
const someType = new SomeType();
Run Code Online (Sandbox Code Playgroud)

如果您查看转译的代码,您会发现这实际上并没有产生import/ require。仅类型实际上并不在运行时导入,它仅在编译时导入类型。

如果您使用不使用值的常规导入,TypeScript 应该执行相同的技巧,但这更明确。