Tenemos secuencias de comandos que se evalúan en una llamada JS VM en el nodo que declara algunos globales contextuales, como en el código a continuación. La pregunta es, en el momento del desarrollo, cuando un desarrollador está trabajando en some-script.js , ¿cómo podemos hacer que VSCode proporcione inteligencia al autor de ese archivo cuando se hace referencia a una aGlobalThing ?
El proyecto en sí tiene soporte tanto para TS como para JS, pero los scripts deben estar escritos en JS por razones no relacionadas. ¿Hay algún tipo de encabezado de comentario que se pueda colocar en cada archivo de script en la parte superior que le dé a VSCode una pista suficiente para que pueda entender que la variable aGlobalThing ya existe con la información de tipo IVmGlobals ? ¿Un typedef, un comentario global, algún combo con una importación incrustada pero envuelta en comentarios?
// code-runner.ts export interface IVmGlobals { aGlobalThing: { a: number; b: string; }; }; export async function runCode(codeSnippet) { const context = vm.createContext({ aGlobalThing: { a: 123, b: 'xyz', }, } as IVmGlobals); await vm.runInContext(codeSnippet, context); } // some-script.js // will assign 123, but how can a developer get // intellisense while writing this file that indicates // the presence of aGlobalThing as existing, and having // a member called `a` that holds number? const a = aGlobalThing.a; //... more code, etc.