当有一个名为“valueOf”的道具时可能出现打字稿问题?

问题描述 投票:0回答:1

这会产生预期的错误:

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
的道具,但也许我缺少一些机制

typescript
1个回答
0
投票

所有 javascript 对象(具有

null
原型的对象除外)都会自动继承
valueOf
属性:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf

所以

ugulha
实际上有一个
valueOf
属性,并且该值是一个返回对象的函数,该对象与您的类型定义相匹配

© www.soinside.com 2019 - 2024. All rights reserved.