我正在为我的 vscode 扩展构建我的 webview 应用程序(使用 vue3 + typescript)。
当我尝试在这个 webview 应用程序中使用 vscode api 时,比如
window.vscode.postMessage(data)
,ts-plugin 会抛出一个错误,Property vscode does not exist on type Window & typeof globalThis
。declare global {
interface Window {
vscode?: any;
}
}
如何正确声明 vscode 的类型(而不是
any
)?我在vscode官网上找不到相关信息
它不起作用,因为它实际上是相反的。类型“window”是在类型“vscode”上定义的。你只需要在你的 webview 中进行正常的导入:
import { TextEditor, Uri, Webview, window, workspace } from "vscode";
然后你可以使用这些类型,例如:
void window.showErrorMessage("I've got an error");
不要忘记安装
@types/vscode
作为开发依赖项。