这会产生预期的错误:
type Paulo = {
prop: string,
otherValueOf: string,
}
type Treta = Record<keyof Paulo, () => Object>
const ugulha : Treta = { //Error: Property 'otherValueOf' is missing
prop: () => 1,
}
但是这样就很好了:
type Paulo = {
prop: string,
valueOf: string,
}
type Treta = Record<keyof Paulo, () => Object>
const ugulha : Treta = {
prop: () => 1,
}
可能没有人会拥有一个名为
valueOf
的道具,但也许我缺少一些机制
所有 javascript 对象(具有
null
原型的对象除外)都会自动继承 valueOf
属性:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf
所以
ugulha
实际上有一个 valueOf
属性,并且该值是一个返回对象的函数,该对象与您的类型定义相匹配