使用 Ace 编辑器/任何 Web IDE 进行 TypeScript 语法验证?

TypeScript Syntax Validation with Ace Editor / Any Web IDE?

Google 让我失望了。我想要一种在我的 Ace 编辑器中进行 TypeScript 语法验证的方法。我找到了 basarat AKA 'That TypeScript Guy' 的 Ace-based TypeScript Playground,但是 repo 没有好的自述文件,我怀疑验证器是最新的 TypeScript 的新功能,因为最后一次提交是几年前的事了。

我了解如何在 Ace 中添加自定义列表本身;这只是我正在努力寻找的实际 TypeScript linter。似乎没有最新维护的;我很惊讶没有一个。目前,我取消了通过名为 ts-morph 的库获取诊断的调用,该库为 TypeScript 编译器 API 提供了对开发人员友好的方法。我得到这些诊断信息,遍历它们,然后将我自己的自定义注释添加到编辑器中:

const diagnostics = getDiagnostics(code)
    aceEditor.getSession().setAnnotations(
      diagnostics.map(diagnostic => {
        return {
          row: diagnostic.getLineNumber() - 1,
          column: diagnostic.getStart(),
          text: diagnostic.getMessageText().toString(),
          type: convertTypeScriptCategoryToAceType(diagnostic.getCategory()),
        }
      })
    )

目前还可以,但我想按照他们建议的格式使用 Web Worker 以 'Ace' 的方式进行。

我对离开 Ace Editor 持开放态度;例如,我也知道 TypeScript Playground, but this doesn't seem to have an open-source repository. Other famous online IDEs, like CodeSandbox 也必须有他们的方法。 (我稍微查看了 CodeSandbox 的源代码,但他们的存储库预计非常复杂。)

任何人都可以向我提供有关在基于 Web 的 IDE 中获得良好的 TypeScript IntelliSense 和语法检查的见解吗?是否可以通过当前的开源工具实现?

当然,在发布这篇文章后的几分钟内,我找到了答案(并且已发布在评论中)。 Microsoft 确实有自己的编辑器,名为 monaco-editor。这实际上与 VSCode.

的权力相同