首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何创建以泛型为参数并具有依赖于参数属性的返回类型的函数类型

创建以泛型为参数并具有依赖于参数属性的返回类型的函数类型,可以使用 TypeScript 中的泛型和条件类型来实现。

在 TypeScript 中,可以使用泛型参数来定义函数类型,并使用条件类型来根据参数的属性来确定返回类型。下面是一个示例:

代码语言:txt
复制
type MyFunction<T> = T extends { prop: infer P } ? (arg: T) => P : never;

// 示例使用的参数类型
type ExampleType = { prop: string, value: number };

// 创建函数类型
const myFunction: MyFunction<ExampleType> = (arg) => arg.prop;

// 测试函数
const result = myFunction({ prop: "example", value: 123 });
console.log(result); // 输出 "example"

在上面的示例中,我们定义了一个名为 MyFunction 的函数类型,它接受一个泛型参数 T。使用条件类型 T extends { prop: infer P },我们判断 T 是否具有 prop 属性,并使用 infer P 来提取属性的类型。如果 T 具有 prop 属性,则返回一个函数类型 (arg: T) => P,否则返回 never 类型。

然后,我们使用示例类型 ExampleType 实例化 MyFunction,并创建了一个名为 myFunction 的函数,它接受一个参数 arg,类型为 ExampleType,并返回 arg.prop 属性的值。

最后,我们调用 myFunction 并传入一个具有 prop 属性的对象,得到返回值并输出。

这种方式可以根据参数的属性来确定函数的返回类型,使函数类型更加灵活和可复用。在实际应用中,可以根据具体的需求和参数属性来定义更复杂的函数类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券