typescript - monaco 编辑器:使用 npm 安装的 “d.ts” 文件来实现智能感知
我需要我通过 npm install mylibname 安装的 d.ts 文件的智能感知。
monaco 组件提供了一个函数 addExtraLib,例如:Microsoft Monaco 示例
我不明白的是:我找到的所有例子都必须知道源代码才能作为第一个参数添加到 addExtraLib(myKnownSourceCode)
但我只是想使用整个“d.ts”文件来获取智能感知。
这可能吗?
答案#1
我认为你误解了 source 参数。这只是一个任意字符串,我甚至不确定它是否用于 monaco-editor 之外的任何可见内容。
相反,只需调用 addExtraLib(typings, "myLibrary") 或类似方法。
附注:这是 Monaco 编辑器的全局设置,这意味着你不能在不同的编辑器中拥有不同的类型定义。这有时不是你想要的,你可以改用 setExtraLib。然而,这只是一个部分解决方案。一旦在同一页面/同一窗口中有不同的编辑器需要不同的类型定义,这种方法就不太适用了。
typings 参数是一个包含 TS 类型声明的简单字符串。 playground 显示了它应该是什么样子的:
// extra libraries
var libSource = [
"declare class Facts {",
" /**",
" * Returns the next fact",
" */",
" static next():string",
"}",
].join("\n");
var libUri = "ts:filename/facts.d.ts";
monaco.languages.typescript.javascriptDefaults.addExtraLib(libSource, libUri);
实际上,我建议查看那里的所有示例,以了解如何使用 Monaco。
