【发布时间】:2023-09-04 23:53:01
【问题描述】:
给出一个示例代码:
var yyy = { abc : 1 },
xxx = yyy.abcc + 1;
它不会抛出任何错误,但有一个错字,其中 yyy.abcc 应该是 yyy.abc,因此由于错字错误,xxx 现在等于“NaN”。
我使用 jslint、jshint 来检查代码中的问题,但它不会告诉你 abcc 是否是有效属性。
有没有像 jslint 或 jshint 这样的工具可以检查这个?
【问题讨论】:
-
"if (undefined != yyy.abc)" 不应该做这项工作吗?或“如果 (NaN != ParseInt(yyy.abc))”。
-
@Ricola3D:虽然这不是一个工具;)
-
不确定有什么工具,但是如果你使用TypeScript,编译器肯定会抛出错误。所有 JavaScript 都与 TypeScript 兼容。因此,您只需复制并粘贴您的代码即可。
-
@Arun 谢谢!它确实能够检查问题中示例的问题,但这意味着我可能需要将我的代码转换为 TypeScript 才能享受全部功能。因为只需复制并粘贴我的 javascript 代码以使用 Typescript 进行检查,它就无法检查依赖项(例如,如果我的代码使用 jQuery,它将给出错误 TS2095:找不到符号 '$'。)
-
用工具来测试这个真的很难,因为你总是可以修改对象原型来拥有一个名为
abcc的属性。仍然可能有一些工具至少会发出警告,但我不知道。我建议进行单元测试以在您的代码中发现此类错误。
标签: javascript lint jshint