Joh*_*ars 6 typescript visual-studio-code vscode-extensions
在代码示例(catcoding)中,支持 webview 逻辑被编写为 JavaScript 中的匿名函数,但我想在 Typescript 中构建此支持逻辑。
\n\n我厌倦了用 requireJS 将这个逻辑重现为打字稿包,但我无法让它工作。
\n\n// This script will be run within the webview itself\n// It cannot access the main VS Code APIs directly.\n(function () {\n const vscode = acquireVsCodeApi();\n\n\xe2\x80\xa6\n\n}();\nRun Code Online (Sandbox Code Playgroud)\n\n我希望在 TypeScript 中构建这个支持 WebView 逻辑,以便获得静态类型检查。
\n如果您使用 TypeScript 编写 webview 脚本,则必须使用 typescript 编译器或 webpack 将它们编译为 JavaScript(有关示例,请参阅github pull requests 扩展)。
VS Code 不包括可用于 Web 视图内的脚本的 VS Code api 的 TypeScript 类型,但您在 TypeScript 中所需要做的就是声明acquireVsCodeApi存在一个名为 的全局变量:
declare var acquireVsCodeApi: any;
const vscode = acquireVsCodeApi();
// Do stuff with api like getting the state
vscode.getState();
Run Code Online (Sandbox Code Playgroud)
小智 0
我遇到了同样的问题。我当前的黑客涉及通过函数动态调用它
const vsCodeFunction = Function(`
// forgive me for my sins
if (typeof acquireVsCodeApi == 'function') {
return acquireVsCodeApi();
} else {
return undefined;
}
`);
const vscode = vsCodeFunction();
Run Code Online (Sandbox Code Playgroud)