visual studio code - WebView-utvidelse i TypeScript
I kodeeksemplet (catcoding) er logikken for bakgrunnswebview skrevet som en anonym funksjon i JavaScript, men jeg ønsker å bygge denne bakgrunnslogikken i Typescript.
Jeg har forsøkt å gjenskape denne logikken som en TypeScript-pakke med RequireJS, men jeg får det ikke til å fungere.
// This script will be run within the webview itself
// It cannot access the main VS Code APIs directly.
(function () {
const vscode = acquireVsCodeApi();
…
}();
Jeg forventer å bygge denne støttende WebView-logikken i TypeScript slik at jeg får statisk typekontroll.
Svar #1
Hvis du skriver webvisningsskriptene dine i TypeScript, må du kompilere dem til JavaScript ved å bruke TypeScript-kompilatoren eller webpack (se GitHub pull request-utvidelsen for et eksempel).
VS Code inkluderer ikke TypeScript-typinger for VS Code API tilgjengelig for skript inne i webvisninger, men alt du trenger å gjøre i TypeScript er å erklære at en global kalt acquireVsCodeApi eksisterer:
declare var acquireVsCodeApi: any;
const vscode = acquireVsCodeApi();
// Do stuff with api like getting the state
vscode.getState();
Svar #2
Jeg støtte på det samme problemet. Min nåværende løsning innebærer å kalle det dynamisk via Function
const vsCodeFunction = Function(`
// forgive me for my sins
if (typeof acquireVsCodeApi == 'function') {
return acquireVsCodeApi();
} else {
return undefined;
}
`);
const vscode = vsCodeFunction();
