如果我有if(Object.keys(obj) < 2)
那么我有一个错误可能会超过我的测试,如果我不使用属性数低于和等于2的对象测试它,即它应该.length
如果我的linter要在&lt;,&gt;,&lt; =,&gt; =的任一侧检查类型,那么它可能会发出警告。
或者,你怎么能抓住这个?我已经知道更高质量的测试会抓住这个。问题是你什么时候不知道你有足够的高质量测试。如果linter或其他工具能够在这种情况下警告类型,那么这将被自动捕获。
答案 0 :(得分:2)
在没有实际运行代码的情况下,没有确定的方法来检查linter中的类型相等性,因为代码可以执行各种操作,并且linter在使用时无法知道变量中实际存在的内容一个对比。这是使用诸如Javascript之类的语言而不需要严格键入的结果。
有一些Javascript的变种,例如TypeScript(可以编译为Javascript),在这方面提供了更多功能。