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

TypeScript:如何从类型中提取泛型参数?

在TypeScript中,可以使用typeofkeyof操作符来从类型中提取泛型参数。

假设我们有一个泛型函数getLength,它接受一个数组作为参数,并返回该数组的长度。我们想要从泛型参数中提取数组元素的类型。

代码语言:typescript
复制
function getLength<T>(arr: T[]): number {
  return arr.length;
}

type ArrayElementType<T> = T extends (infer U)[] ? U : never;
type ElementType = ArrayElementType<typeof arr>;

在上面的代码中,我们首先定义了一个辅助类型ArrayElementType,它使用了条件类型。条件类型T extends (infer U)[] ? U : never表示如果T是一个数组类型,则返回数组元素的类型U,否则返回never。这样我们就可以通过ArrayElementType<typeof arr>来提取数组元素的类型。

下面是一个完整的例子:

代码语言:typescript
复制
function getLength<T>(arr: T[]): number {
  return arr.length;
}

const arr = [1, 2, 3];
type ArrayElementType<T> = T extends (infer U)[] ? U : never;
type ElementType = ArrayElementType<typeof arr>;

const length = getLength(arr);
console.log(`The length of the array is ${length}`);
console.log(`The type of array elements is ${typeof arr}`);

输出结果为:

代码语言:txt
复制
The length of the array is 3
The type of array elements is number

在这个例子中,我们成功地从类型中提取了泛型参数,并获得了数组元素的类型。这种方法可以用于提取任意类型中的泛型参数。

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

请注意,以上仅为示例产品,实际选择产品时应根据具体需求进行评估和选择。

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

相关·内容

领券