我正在尝试让monaco编辑器(v0.13.1)检查JavaScript中的函数签名。通过使用下面的代码,我至少可以使IntelliSense显示预期的签名,但是没有显示错误:
// validation settings
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
noSemanticValidation: false,
noSyntaxValidation: false,
});
monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({
noSemanticValidation: false,
noSyntaxValidation: false,
});
// compiler options
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.ES6,
allowNonTsExtensions: true,
allowJS: true,
});
var jsCode = `
/**
* @param {string} a
* @param {number} [b]
*/
function foo(a, b) {
}
foo(1); // here should be an error!
`
monaco.editor.create(document.getElementById("container"), {
value: jsCode,
language: "javascript"
});
我想念什么?
答案 0 :(得分:1)
由于其他海报似乎都没有回答我的问题,我会自己回答。
摩纳哥编辑器可以对JavaScript代码进行类型检查,而VSCode可以做到这一点,而这正是我想要做的。
为此,编辑器模型必须为“ typescript”,文件URI需要扩展名为“ .js”,并且必须打开“ allowJS”和“ checkJS”编译器选项: https://github.com/Microsoft/monaco-editor/issues/989#issuecomment-411027528