typescript - TypeScript:普通和不可变js对象的深度遍历
问题描述
我有一个深入对象的函数:$get(['deep', 'inside'], object)
. 我可以这样输入:
...
export function $get<K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], T>(path: [K1, K2, K3], subject: T): T[K1][K2][K3];
export function $get<K1 extends keyof T, K2 extends keyof T[K1], T>(path: [K1, K2], subject: T): T[K1][K2];
export function $get<K1 extends keyof T, T>(path: [K1], subject: T): T[K1];
现在我需要让它与 immutableJS Map 对象一起工作。基本上我需要能够这样做:
function $get<K1 extends keyof T, T>(path: [K1], subject: T): T.get(K1);
但显然这是不可能的。任何想法如何使它工作?一种可能的解决方法是使用类似的东西seamless-immutable
,但我只想知道我的所有选择。
解决方案
推荐阅读
- ios - 如何在不重复的情况下在部分中设置 UITableViewCell backgroundColor?
- matlab - 如何在MATLAB的for循环中定义一个特殊的矩阵函数?
- mongodb - $filter 如果属性不存在
- c++ - 将 lambda 的“-Werror=subobject-linkage”作为标头中的模板参数:拒绝这个的原因是什么?
- python-3.x - 如何将要测试的模块导入到测试模块中
- javascript - 通过链接在 Discord 附件中使用 PHP 生成的图像
- laravel - 在 api.php 和 web.php 中定义同名的路由
- node.js - Socket.io Letsencrypt 和 CORS 上的安全连接失败
- laravel - 无法使用 phpunit 运行测试套件
- sql - 将 SQL 自联接查询转换为 data.table 语法