我正在寻找一种方法,以通过对原型进行形式化来防止令人惊讶的属性出现在我的对象中。我希望我的类型始终将其设为true:
Object.getPrototypeOf(myObj) === Object.prototype
并且有类似这样的事情会引发编译错误(仅作为示例,请考虑可以设置/修改对象原型的任何事物):
type Pojo = {
// some magic setting I want to learn
}
const myObj: Pojo = Object.create(Array.prototype); // error!
在这种情况下,Array.prototype
在myObj
的原型链中,这会破坏我的假设类型声明,因为可以在其中找到类似indexOf
的Array方法。