我是新来的,一般都是打字的。我正在尝试让JQuery代码完成在我的编辑器上工作。我已经尝试了我所能找到的关于如何实现这一点的几乎所有示例。我想我已经很接近了,但是可能遗漏了一些基本的东西。
从DefinitelyTyped的人那里,我得到了他们的jquery目录,并将其包含在我的web项目中。在创建我的Monaco编辑器的文件中,我有以下内容。
const path = "/jslib/monaco/types/jquery/index.d.ts";
const typings = readTextFile(path);
monaco.languages.typescript.javascriptDefaults.addExtraLib(typings, path);readTextFile()只是我用来获取index.d.ts内容的一个小函数(我可以确认它正在工作)。这是我的其他设置。
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
target:
monaco.languages.typescript.ScriptTarget.ES2016,
allowNonTsExtensions: true,
module: monaco.languages.typescript.ModuleKind.System,
noEmit: true,
typeRoots: ["/jslib/monaco/types"],
noLib: true
});
window.editor = monaco.editor.create(document.getElementById('monacodiv'), {
value: $("#formula").val(),
language: 'javascript',
theme: "vs-dark",
autoIndent: true,
dragAndDrop: true,
tabCompletion: true,
fontFamily: "monospace",
scrollBeyondLastLine: false
});如果有人能让我知道我做错了什么,那就太棒了!
发布于 2019-04-01 17:16:07
所以我遇到了这个问题,在深入研究了DefinitelyTyped的定义之后,我注意到index.d.ts只是聚合了来自四个不同文件(JQueryStatic、JQuery、misc、legacy)的内容。通过重复使用addExtraLib添加所有这些文件的内容应该是可行的!否则,不确定monaco如何找到内容。
https://stackoverflow.com/questions/53752694
复制相似问题