在这种情况下它不允许 instanceof - 为什么?
public assign(color: string | ColorProperty | RgbProperty | RgbColor): void {
super.assign(color);
if (color instanceof ColorProperty) {
Run Code Online (Sandbox Code Playgroud)
ps - 我爱工会!!!
似乎instanceof关键字必须具有包含在联合中的类型any才能在函数中使用它。
我的猜测是编译器需要处理所有类型保护返回 false 的情况 - 因此类型被推断为any.
function assign(_color: any | string | ColorProperty | RbgProperty) {
if (_color instanceof ColorProperty) {
}
// else may not be a string | ColorProperty | RbgProperty
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3629 次 |
| 最近记录: |