如何为 VS Code 扩展导出的 API 提供类型?

Log*_* B. 8 typescript visual-studio-code

我正在开发一个 VS Code 扩展(使用 TypeScript),主要目标是为其他扩展提供 API。该扩展没有面向用户的功能。但是,我找不到有据可查的方法来向使用此 API 的其他扩展提供类型。

我通过此处指定的方法导出 API:https ://code.visualstudio.com/api/references/vscode-api#extensions

我在开发中尝试过使用此扩展,到目前为止,我发现保留类型的唯一方法是在使用者扩展中手动声明接口,然后进行类型转换extension.exports

我的一个想法是创建一个 NPM 包,将vscode.extensions.getExtension(...)API 作为模块提供并包含类型。这很好,但我只是想知道我是否缺少一些可以让我以更干净的方式提供类型的东西。

HC4*_*ica 0

我想它可以使用你的 NPM 建议的变体来工作:

  • 您发布一个NPM 包,其中仅包含文件@types/yourExtension中扩展 API 的类型定义.d.ts
  • 使用您的 API 的扩展(如果用 Typescript 编写)依赖于并导入该 NPM 包。
  • 消费者扩展访问它yourExtension.exports并将其转换为该包中定义的类型。