TypeScript中==和===的区别
大家好!请给TypeScript新手解释一下:运算符==和===之间的根本区别是什么?我读过,在JavaScript中,前者会进行类型转换,而后者是严格比较,但在TypeScript中,据我所知,类型已经由编译器严格控制了。
下面这个例子让我困惑:
const a: number = 5;
const b: string = "5";
if (a == b) {
console.log("用==相等");
}
if (a === b) {
console.log("用===相等");
}第一个if会输出消息,第二个不会。我本以为TypeScript甚至不会让我在没有显式转换的情况下比较number和string,但代码编译通过了。为什么会这样?难道TypeScript不应该在a == b时报错吗?还是说严格类型检查只在编译层面起作用,而在运行时仍然使用JavaScript的逻辑?
我试过在tsconfig.json中启用strict: true——但