与OData一起使用的投影函数的键入

时间:2018-08-02 12:58:33

标签: typescript typescript-typings

TypeScript带有Array.map类型的开箱即用类型,但这依赖于所提供的函数最终将在运行时执行。

我正在寻找一种声明select函数的方法,该函数将提供类型检查,同时还允许在运行时评估select中的字段。我的目标是编写OData客户端库,但是我在解决select方法上遇到了困难。

例如(T是在包含接口上定义的泛型):

interface EndPoint<T>{
  select<K extends keyof T>(fields: K[]):[ /* ??? */];
}

我想这样调用该方法:

let resource: EndPoint<{id: number, name: string, email: string}> = ...;
resource.select(['id', 'name']);

让Typescript理解返回类型如下:

[{id: number, name: string}]

我知道Partial<>类型,但是我希望键入比“所有字段可能存在或不存在”更智能。

0 个答案:

没有答案