3
votes

Extension WebView dans TypeScript

Dans l'exemple de code (catcoding), la logique de backing webview est écrite comme une fonction anonyme en JavaScript, mais j'aimerais construire cette logique de backing dans Typescript.

Je suis fatigué de reproduire cette logique sous forme de package dactylographié avec requireJS mais je n'arrive pas à faire fonctionner cela.

// This script will be run within the webview itself
// It cannot access the main VS Code APIs directly.
(function () {
  const vscode = acquireVsCodeApi();

…

}();

Je prévois de construire cette logique de support WebView dans Tapez du script pour que j'obtienne la vérification de type statique.


0 commentaires

3 Réponses :


-1
votes

La classe WebView ne peut pas transpiler le code TS, vous devez donc écrire son code en JS, pas moyen de contourner cela.


0 commentaires


4
votes

Si vous écrivez vos scripts de vue Web en TypeScript, vous devez les compiler en JavaScript à l'aide du compilateur ou du webpack typescript (voir le extension de requêtes d'extraction github pour un exemple).

VS Code n'inclut pas les typages TypeScript pour l'API VS Code disponible pour les scripts à l'intérieur des vues Web, mais tout ce que vous avez à faire dans votre TypeScript déclare qu'il existe un global appelé AcquérirVsCodeApi :

declare var acquireVsCodeApi: any;

const vscode = acquireVsCodeApi();

// Do stuff with api like getting the state
vscode.getState();


1 commentaires

Je vous remercie! Cela aide vraiment à me débarrasser du bruit inutile :) J'ai également dû déclarer window et document , mais je pense que const correspond mieux à la nouvelle syntaxe ( eh bien, c'est une opinion): declare const window: any, document: any, acquiertVsCodeApi: any;