接受部分接口并返回文字参数的函数

时间:2019-06-06 08:29:42

标签: typescript typescript3.0

我想声明一个泛型函数,该函数接受部分接口作为参数并返回该文字参数。

我尝试了这些签名无济于事:

  1. 不限制属性,并允许传递任何密钥:
function setContextValue<V extends Partial<Context>>(values: V): V;
  1. 返回接近的Partial<Context>,但是我只想专门返回values的允许键:
function setContextValue(values: Partial<Context>): typeof values;
  1. 离我最近的。它可以正确执行部分接口,但返回非成员属性为never
function setContextValue<V extends { [K in keyof V]: K extends keyof Context ? V[K] : never }>(values: V): V;

#3是最好的解决方案吗?是否无法将返回类型指定为Pick<V, keyof Context>

谢谢!

0 个答案:

没有答案