我一直在用 TypeScript 编写一些单元测试。示例 QUnit 测试包含:
ok( 1 == "1", "Passed!" );
编译器tsc
声称:
运算符 '==' 不能应用于类型 'number' 和 'string'
并以状态退出1
(尽管它确实正确生成了 JS)。
规范说:
<、>、<=、>=、==、!=、=== 和 !== 运算符
这些运算符要求一种操作数类型与另一种操作数类型相同或者是另一种操作数类型的子类型。结果总是布尔原始类型。
所以看起来警告/错误是正确的。这难道不是违背了类型强制==
运算符的意义吗?是否有==
在 TypeScript 中使用不会产生此警告的有效用例?