tsserver 和 eslint 作为 linter 有什么区别?

What's the difference between tsserver and eslint as a linter?

我目前正在设置我的 Neovim 的原生 LSP 工作环境,我有一个关于 JS/TS linter 的问题。

tsserver和eslint有什么区别作为linter?

我知道 tsserver 是一个语言服务器,它全面支持自动完成和转到定义等功能,以及 eslint lints 编码风格(例如 airbnb 风格)。

但是如果我关闭 eslint 的 code-format-linting 功能(例如,当同时使用 prettier 时),与 eslint 的 linting 有什么区别吗?

编辑:

我把诊断和 linter 搞混了。 我想问的是:

“tsserve 和 eslint 的诊断功能有什么区别?”

最初您需要编写一个特定的 VSCode 扩展来执行 linting,使用相关的诊断 VSCode API。那是 TSLint 或 ESLint 扩展问世的时候。

但是语言服务器自然是诊断的中心源,因为它们将代码编译为 AST,因此 diagnostics API 也在那里可用。

对于您的情况,这两种工具都可以判断您的代码中可能存在的问题,您可以同时启用或禁用其中之一。这只是您感觉哪个工具更好并报告更多您感兴趣的问题的问题。它们应该有很多重叠,而在问题类别中有一些细微差别。

一般来说:

tserver是一个在后台运行TypeScript的服务,可以响应编译命令。 TypeScript 本身不是 linter,而是一个编译器,它还能够跟踪类型错误和极少数通用代码问题。 eslint 是一个 JavaScript linter,可以发现代码中的问题。

通常,您使用 TypeScript 专门跟踪类型错误,并使用 eslint 查找代码中所有其他可能的问题或风格约定。