我有一个自定义类型 SpecialRecord<K,V>
并且想定义 Object.entries
在它上面的行为。这类似于在某处如何定义 Object.entries
在 Record
类型上的行为。
我尝试在全局 .d.ts 文件中重载该方法,但它似乎没有采用此定义。另外,我想扩展定义,而不是完全覆盖它。
interface Object {
entries<K, V>(obj: SpecialRecord<K,V>): [K,V][]
}
如果我改为将其称为 xentries
,然后使用 xentries
,它将通过输入。这表明文件正在加载(当然这会在运行时失败)。
如何正确地向 Object.entries 添加附加类型?
答案 0 :(得分:1)
entries()
是在 ObjectConstrutor 中定义的,所以你可以这样做:
interface MyInt {
foo: string;
}
interface ObjectConstructor {
entries(obj: MyInt): ['foo', string];
}
const myobj: MyInt = {foo: 'a'};
const t = Object.entries(myobj);