TypeScript映射的类型更改值函数';s返回类型

TypeScript映射的类型更改值函数';s返回类型,typescript,Typescript,我有一个类型脚本,如下所示: 类型Api={ createItem:(名称:string)=>承诺; getItem:(id:number)=>承诺; 更新项:(项:项)=>承诺; deleteItem:(id:number)=>承诺; }; 我正试图找出如何将其转换为以下内容: 类型Api={ createItem:(名称:字符串)=>{type:'success';result:Item;}{type:'error'}; getItem:(id:number)=>{type:'succes

我有一个类型脚本,如下所示:

类型Api={
createItem:(名称:string)=>承诺;
getItem:(id:number)=>承诺;
更新项:(项:项)=>承诺;
deleteItem:(id:number)=>承诺;
};
我正试图找出如何将其转换为以下内容:

类型Api={
createItem:(名称:字符串)=>{type:'success';result:Item;}{type:'error'};
getItem:(id:number)=>{type:'success';result:Item;}{type:'error'};
updateItem:(item:item)=>{type:'success';result:item;}{type:'error'};
deleteItem:(id:number)=>{type:'success'}{type:'error'};
};
我认为映射类型是一种方法:

type NewApi={
[\uIn-keyof-Api]:(???)=>{type:'success';result:???}{type:'error'}
};
不过,我不知道如何在那里填空。我甚至不确定有没有可能做到这一点

我需要这种类型的原因是我正在构建一个网关代理,而该类型的实际实现将是一个实际的
代理
对象,拦截成员访问,用另一个代理模拟其值,该代理将捕获函数调用以进行更改,并返回上述联合类型


实现部分很好,但我似乎无法获取使Intellisense工作的类型。

您可以使用类型脚本和类型

type NewApi={
[K in keyof Api]:(…参数:参数

type NewApi = {
  [K in keyof Api]: (...args: Parameters<Api[K]>) => { type: 'success'; result: ReturnType<Api[K]> } | { type: 'error' }
};