gpt4 book ai didi

typescript - 从通用接口(interface)的类型创建通用函数

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:43 27 4
gpt4 key购买 nike

我想创建一个通用函数,它使用由不同通用函数的返回定义的类型。我有一个返回第一个通用接口(interface)的函数,例如:

myFunction( request: MyThing ): SpecialInterface<YourThing>

所以我制作了我的新界面,想要使用 YourThing我可以使用 ReturnType 帮助程序获得返回

coolFunction( request: ReturnType<myFunctionType> ): void;

这给了我另一个函数返回的通用接口(interface),但我不想要 SpecialInterface<YourThing>我要YourThing ,泛型在这里使用的类型。

有没有办法得到那种类型?

最佳答案

这是一种将 request 类型解析为 YourThing 的方法。

interface MyThing { 
y: string;
}

interface YourThing {
x: string;
}

interface SpecialInterface<T> {
z: T;
}

const myFunction = (request: MyThing): SpecialInterface<YourThing> => {
return null;
};

type InnerType<T> = T extends SpecialInterface<infer X> ? X : never;

const coolFunction = (request: InnerType<ReturnType<typeof myFunction>>): void => {
// do something
}

coolFunction({}); // error
coolFunction({} as MyThing); // error
coolFunction({} as YourThing);

这是in the TypeScript playground .

关于typescript - 从通用接口(interface)的类型创建通用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55191981/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com