让我们考虑一下这个简单的语句:
var foo = document.getElementById('foo');
if (foo instanceof Element) {
a.innerHTML = "Some text";
}
但如果你写道:
var foo = document.getElementById('foo');
if (foo instanceof Element === true) {
a.innerHTML = "Some text";
}
打字脚本转换器抛出一个错误:
'foo' is possibly 'null'.
假设instanceof只能返回TRUE或FALSE,我不明白为什么转换程序不接受带有=TRUE的条件. 相反的语句也有相同的错误:
!(foo instanceof Element)
不同于:
foo instanceof Element === false
这种行为的原因是什么?这两种说法有什么不同吗?