TypeScript:深度遍历纯对象和不可变对象

时间:2018-08-27 08:04:32

标签: typescript immutable.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之类的东西,但我只想知道所有选项。

0 个答案:

没有答案