免责声明。请注意,这不是一个关于为什么JavaScript中的1和'1'不同的问题。这不是关于==
和===
之间差异的问题。这不是关于如何比较1和'1'的问题。
我有以下代码。
test(input: number) {
let index = 5;
console.log(typeof (index) + " " + typeof (input));
console.log(index === input);
}
第一行打印数字字符串,当然,第二行是 false 。我不能为我的生活理解它。谷歌搜索20分钟 - 我只看到示例表明接收参数是硬键入的,应该是一个数字。
我错过了什么?
答案 0 :(得分:5)
你在TypeScript中使用了“硬类型”一词,它只是不是。 TypeScript不会自动转换运行时值;如果您有JavaScript代码并使用错误输入的参数调用TypeScript代码,则不会进行“修复”转换。
请记住:TypeScript和JavaScript 具有相同的运行时语义。关于为什么===
在TypeScript中有一些运行时结果的问题与JavaScript问题完全相同(已经在StackOverflow上问了几百次,所以我不会讨论它。)