你好,我想知道是否可以像 instanceof
运算符那样推断 isPrototypeOf() 函数的类型?这样我们就可以缩小参数的类型,如果它是使用 Object.create(proto)
函数创建的,那么它的类型将类似于 typeof proto
,如果检查得到满足。
搜索词
isPrototypeOf
示例
if (object instanceof HTMLAnchorElement) {
console.log(object.href);
}
if (HTMLAnchorElement.prototype.isPrototypeOf(object)) {
console.log(object.href);
}
检查清单
我的建议符合以下指导原则:
- 这不会对现有的 TypeScript/JavaScript 代码造成破坏性改变
- 这不会改变现有 JavaScript 代码的运行时行为
- 这可以在不根据表达式的类型发出不同的 JS 的情况下实现
- 这不是一个运行时特性(例如库功能、带有 JavaScript 输出的非 ECMAScript 语法等)
- 这个特性将与 TypeScript's Design Goals 的其他部分保持一致。
1条答案
按热度按时间9wbgstp71#
你可以将自己的签名
isPrototypeOf()
合并,以在自己的代码库中获得这种行为,无论这是否最终被接受到TS标准库中:Playground链接