如何在 webwiew 应用程序中设置正确的类型声明?

问题描述 投票:0回答:1

我正在为我的 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官网上找不到相关信息

typescript vscode-extensions
1个回答
0
投票

它不起作用,因为它实际上是相反的。类型“window”是在类型“vscode”上定义的。你只需要在你的 webview 中进行正常的导入:

import { TextEditor, Uri, Webview, window, workspace } from "vscode";

然后你可以使用这些类型,例如:

void window.showErrorMessage("I've got an error");

不要忘记安装

@types/vscode
作为开发依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.