我有一个遍历对象的函数:$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
之类的东西,但我只想知道所有选项。