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

如何告诉typescript从参数对象中获取泛型类型?

在TypeScript中,可以使用类型推断和条件类型来告诉编译器从参数对象中获取泛型类型。具体的方法如下:

  1. 首先,定义一个泛型函数,该函数接受一个参数对象,并返回一个泛型类型。
代码语言:typescript
复制
function getValue<T>(obj: { value: T }): T {
  return obj.value;
}
  1. 然后,使用类型推断和条件类型来从参数对象中获取泛型类型。
代码语言:typescript
复制
type ExtractValueType<T> = T extends { value: infer V } ? V : never;

function getValue<T>(obj: { value: T }): ExtractValueType<T> {
  return obj.value;
}

在上述代码中,ExtractValueType<T>是一个条件类型,它会根据传入的泛型类型T判断是否符合{ value: infer V }的结构,如果符合,则返回V,否则返回never

  1. 最后,调用泛型函数并传入参数对象,编译器会根据参数对象的类型推断出泛型类型。
代码语言:typescript
复制
const obj = { value: 123 };
const result = getValue(obj); // result的类型被推断为number

在上述代码中,编译器会根据参数obj的类型推断出泛型类型为number,因此result的类型也被推断为number

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,本回答仅提供了一种解决方案,可能还有其他方法可以实现相同的效果。

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

相关·内容

领券