如何解决VSCode 仅在导入符号时呈现 JSDoc 链接到另一个文件 TDLR
我正在尝试使用 JSDoc @link
注释来引用不同文件中的类,但 VSCode 无法识别它并且工具提示呈现为纯文本。
我找到了一种解决方法,将符号导入到我的文件中。但是,我不想导入某些内容以便它可以出现在文档中。
如何让它发挥作用?
TDLR
同一文件中的链接工作正常。问题仅在于跨文件链接,但在 VSCode's docs for the @link
directive 中没有对该主题的相关参考。
我正在跑步:
- VSCode 1.58.2
- TypeScript 4.3.5
解决方法
这不正是您所期望的工作方式吗?如果您添加指向符号的链接,VS Code(或任何 IDE,实际上)需要知道您的确切意思是什么符号。
如果他们只需要猜测符号,他们不仅需要遍历所有可能的类型文件,还会有类,因为例如例如,您的 20 个依赖项(甚至单个依赖项中的 20 个文件)都创建了一个 export interface Options
。
您可能使用 import('module').Export
作为类型。
或者,您可以使用在 TypeScript 3.5 中添加的 type-only import:
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();
如果您查看转换后的代码,您会注意到这实际上并没有产生 import
/require
。 Type-only 实际上不会在运行时导入,它只在编译时导入类型。
如果您在不使用值的情况下使用常规导入,TypeScript 应该会做同样的事情,但这更明确。