我已经整合了 Monaco 编辑器,用于编写简单的代码片段。
我希望在这些代码片段中全局使用 TypeScript
变量,并使其具有可行的智能提示功能。
我正在使用以下代码加载 TypeScript 类型:
const typings = await fetch(path).then(r => r.text());
monaco.languages.typescript.javascriptDefaults.addExtraLib(typings, path);
但是显然,如果没有任何额外的措施,它将无法运行。因为TypeScript Typings被创建为模块,并且不会向全局公开任何内容。
我可以使用以下代码创建一个全局变量:
monaco.languages.typescript.javascriptDefaults.addExtraLib(`
declare const typescript: any;
`, 'global.d.ts');
但是我无法为这个变量分配 typescript
类型。我尝试了以下内容
monaco.languages.typescript.javascriptDefaults.addExtraLib(typings, './typescript.d.ts');
monaco.languages.typescript.javascriptDefaults.addExtraLib(`
import * as ts from './typescript.d.ts';
declare global {
const typescript: typeof ts;
}
`, 'global.d.ts');
});
但是没有运气。它不起作用。
如何将模块公开为全局变量?