0

我在调试中注意到,我最难找到的愚蠢的拼写错误是结果语句,例如:

if (id = userId) {..}

And for class methods:

let result = myClass.doThis;

出于某种原因,VSCode 不会在编译时将这些标记为潜在问题。是否有设置或工具可以警告我此类错误?有时它们很难找到并且花费了我很多时间来追踪,因为当您扫描时它们并不那么明显并且难以搜索。

我意识到这些是合法的打字稿语句,但其他一些语言的 UI 会在条件和称为属性的方法中标记分配,以确保这确实是您想要做的。

4

1 回答 1

1

继@aluan-haddad 的评论之后。

ESLint 有一个规则来防止你的第一个问题 ( if (id = userId) {...}): no-cond-assign

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

抓住这一点的一种选择可能unbound-method来自@typescript-eslint. 但是,如果您使用自动绑定箭头函数方法,则此规则不会捕获任何内容。

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

如果您遇到类似的问题if (myClass.doThis) {...},请参阅此答案中的建议:https ://stackoverflow.com/a/63183129/3736051

于 2020-08-03T16:05:42.207 回答