Невозможно объявить глобальный тип переменной для использования в файлах JS для оценки виртуальной машины.
У нас есть скрипты, которые оцениваются в вызове виртуальной машины JS на узле, который объявляет несколько контекстных глобальных переменных, как в коде ниже. Вопрос в том, во время разработки, когда разработчик работает над
some-script.js
, как мы можем заставить VSCode предоставлять информацию автору этого файла, когда на него ссылаются?
Сам проект поддерживает как TS, так и JS, но скрипты должны быть написаны на JS по несвязанным причинам. Есть ли какой-то заголовок комментария, который можно поместить в каждый файл сценария вверху, который даст VSCode достаточно подсказки, чтобы он мог понять, что
aGlobalThing
переменная уже существует с
IVmGlobals
ввести информацию? Определение типа, глобальный комментарий, какая-то комбинация со встроенным, но обернутым комментариями импортом?
// 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.