我在嵌入式应用程序中使用Monaco,用户可以在其中编写JavaScript以在我们自己的引擎中运行。该引擎距离网络浏览器很远,因此我们拥有自己的API,并且绝对不支持任何Web API。但是,由于我们在浏览器本身中运行Monaco,所以我猜想它会选择这些API并通过其(相当出色的)Intellisense小部件进行显示。那么有没有一种方法可以禁用此功能,而只显示我们的API(我将使用addExtraLibs来提供它)?
非常感谢。
答案 0 :(得分:1)
是的。您可以使用libs
属性指定要包括的默认库。示例:
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.ES2015,
lib: ["es6"]
});
在CompilerOptions部分的Typescript文档中:
注意:
如果未指定--lib,则会注入默认的库列表。的 注入的默认库是: 对于--target ES5:DOM,ES5,ScriptHost 对于--target ES6:DOM,ES6,DOM.Iterable,ScriptHost
您想要做的就是省略DOM库。
我读过某个地方,尽管我还没有亲自测试过,但您也可以使用["!DOM"]
来包含所有默认值除了 DOM
。
请确保您将typescriptDefaults
语言用于typescript
,并将typescript.javascriptDefaults
语言用于javascript
。我认为它们基本上等同于摩纳哥。这使我绊了一会儿。