捕获typescript语法错误:if语句和类方法调用



我在调试中注意到,对我来说最难找到的dopey拼写错误是结果语句,如:

if (id = userId) {..}
And for class methods:
let result = myClass.doThis;

出于某种原因,VSCode在编译时不会将这些标记为潜在问题。有没有一个设置或工具可以警告我这些错误?有时它们很难找到,而且我花了很多时间来追踪,因为当你扫描时它们不太明显,很难搜索。

我意识到这些都是合法的typescript语句,但在其他一些语言中,UI会将条件和方法中的赋值标记为属性,以确保这确实是你想要做的

下面是@aluan haddad的评论。

ESLint有一条规则来防止您的第一个问题(if (id = userId) {...}(:CCD_ 2。

您的第二个问题(let result = myClass.doThis;(如果没有更多信息,很难说最好的lint规则是什么。就其本身而言,该代码没有任何问题——您已经将一个函数(我认为是(分配给了一个变量。

捕获此的一个选项可能是来自@typescript-eslintunbound-method规则。但是,如果您使用的是自动绑定箭头函数方法,则此规则不会捕获任何内容。

如果您有从函数返回值的问题,那么TS应该主要为您处理这个问题。一种确定的方法是通过以下@typescript-eslint规则之一为您的功能强制执行严格的合同:

  • explicit-function-return-type
  • explicit-module-boundary-types

如果您对if (myClass.doThis) {...}之类的东西有问题,请参阅以下答案中的建议:https://stackoverflow.com/a/63183129/3736051

最新更新