Monaco 编辑器中的类型检查

3

在 Monaco 编辑器中是否可以启用类型检查?例如,我有以下编辑器配置:

monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
    noSemanticValidation: false,
    noSyntaxValidation: false
});

monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
    target: monaco.languages.typescript.ScriptTarget.ES2016,
    allowNonTsExtensions: true,
    noLib: true
});

//Passed into monaco.editor.create(...)
let editorOptions = {
  value: '',
  language: 'javascript',
  scrollBeyondLastLine: false,
  theme: "vs-dark",
  minimap: {
    enabled: false
  },
  automaticLayout: true,
  wordWrap: "on"
}

此外,我有以下代码,它将一个自定义的类和方法添加到编辑器环境中:
monaco.languages.typescript.javascriptDefaults.addExtraLib([
    'declare class Foo {}',
    'declare function bar(foo: Foo)'
].join('\n'), 'filename/example.d.ts');

然而,在摩纳哥,我仍然可以输入以下代码bar("str"),即使"str"不是Foo类型,编辑器也不会抛出错误。在Monaco中是否有可能开启静态类型检查?

1个回答

0
我用以下方法解决了这个问题,似乎设置会覆盖任何现有的配置,所以我将当前的配置扩展进去。
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
    ...monaco.languages.typescript.javascriptDefaults.getDiagnosticsOptions(),
    noSemanticValidation: false,
    noSuggestionDiagnostics: false,
    noSyntaxValidation: false
});


monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
    ...monaco.languages.typescript.javascriptDefaults.getCompilerOptions(),
    checkJs: true // need this
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接