【发布时间】:2017-02-08 08:15:27
【问题描述】:
我写了一些代码来做一些运行时类型测试:
var x = window.opener;
if (typeof x === 'null') {
// Do something
}
var y = getSomething();
if (typeof y === 'MyClass') {
// ...
} else if (typeof y === 'array') {
// ...
}
我在所有if 表达式上都遇到了这个错误:
错误 TS2365:运算符 '===' 不能应用于类型 '"string" | "数字" | “布尔” | “象征” | “未定义” | “对象” | “函数”和“空”。
这是一个 TypeScript 错误吗?为什么它不允许我像我想的那样使用typeof?
【问题讨论】:
-
(注意:行为是 TypeScript 2.2 特有的,所以这在 TypeScript Playground 中还没有发生)
标签: typescript