是否有 JavaScript 技术来检查 >、<、>=、<= 操作中的类型相等性?
Is there a JavaScript technique to check for type equality in >,<,>=,<= operations?
如果我有 if(Object.keys(obj) < 2)
那么我有一个错误,如果我不使用以下 属性 计数和 at/above 2 的对象对其进行测试,它可能会通过我的测试。即它应该有 .length
.
如果我的 linter 要检查 <,>,<=,>= 两边的类型,那么它可能会对此发出警告。
或者,你还能怎么捕捉到这个?我已经知道更多高质量的测试会捕捉到这一点。问题是你永远不知道什么时候你有足够的高质量测试。如果 linter 或其他工具能够在这种情况下发出类型警告,那么这将被自动捕获。
在没有实际 运行 代码的情况下,没有确定的方法来检查 linter 中的类型相等性,因为代码可以做各种各样的事情,而 linter 无法知道 linter 中实际存在的内容在比较中使用时变量。这是使用 Javascript 等不需要严格类型化的语言的结果。
有一些 Javascript 的变体,例如 TypeScript(可以编译为 Javascript),在这方面提供了更多功能。
如果我有 if(Object.keys(obj) < 2)
那么我有一个错误,如果我不使用以下 属性 计数和 at/above 2 的对象对其进行测试,它可能会通过我的测试。即它应该有 .length
.
如果我的 linter 要检查 <,>,<=,>= 两边的类型,那么它可能会对此发出警告。
或者,你还能怎么捕捉到这个?我已经知道更多高质量的测试会捕捉到这一点。问题是你永远不知道什么时候你有足够的高质量测试。如果 linter 或其他工具能够在这种情况下发出类型警告,那么这将被自动捕获。
在没有实际 运行 代码的情况下,没有确定的方法来检查 linter 中的类型相等性,因为代码可以做各种各样的事情,而 linter 无法知道 linter 中实际存在的内容在比较中使用时变量。这是使用 Javascript 等不需要严格类型化的语言的结果。
有一些 Javascript 的变体,例如 TypeScript(可以编译为 Javascript),在这方面提供了更多功能。