我有一个produce
具有以下签名的方法:
interface ProduceConditions {
[key: string]: Function|Promise<any>;
}
produce(conditions: ProduceConditions, input: any): Promise<object>|object;
问题是返回的(已解析的)对象具有与该conditions
对象相同的键。
编辑:我应该添加对函数源的引用,该源位于https://github.com/selfrefactor/rambdax/blob/master/modules/produce.js
如果我正确理解了您的要求,那么您的输入conditions
将是ProduceConditions
带有一组键的实现,并且返回值(无论是否包装在Promise中)将具有相同的键,但所有值都已解析。
在这种情况下,您要查找的签名将类似于:
produce<T extends ProduceConditions, U extends { [key in keyof T]: any }>(conditions: T, input: any): Promise<U> | U
在这里,我使用了两种通用类型来表示输入和输出,要求输入类型T
符合的定义,ProduceConditions
并且输出类型U
具有与相同的键T
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句