typescript - 如何在 TypeScript 中为 Object.entries 函数添加重载
问题描述
我有一个自定义类型,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 添加其他类型?
解决方案
entries()
在 ObjectConstrutor 中定义,因此您可以执行以下操作:
interface MyInt {
foo: string;
}
interface ObjectConstructor {
entries(obj: MyInt): ['foo', string];
}
const myobj: MyInt = {foo: 'a'};
const t = Object.entries(myobj);
推荐阅读
- javascript - 从表单提交值后,如何将数据从 Google 表格提取到 Webapp?
- php - PHP 致命错误:未捕获的错误:即使在调用 autoload.php 后也找不到类“Google_Service_Gmail_Resource_Users”?
- c++ - 如何使用 Boost Units 进行数值微分?
- python - 转换后的 Python 可执行文件在 CMD 中没有 2> nul 参数的情况下获得 WinError 6
- node.js - Heroku 部署 SassError:找不到要导入的文件或无法读取。在本地运行良好
- python - 如何使用 Python 修改 .SVG 文件的内容?
- shell - 用于从 2 个路径中删除和压缩文件的 Shell 脚本
- javascript - 如何从 nodejs 包中导出类型
- javascript - Firebase Web 实时数据库未更新
- c# - 将 Streamread 路径更改为资源文件后,控制台输出中的 C# 异常和错误格式