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

typescript可以在泛型类型中使用窄联合类型吗?

是的,TypeScript可以在泛型类型中使用窄联合类型。

窄联合类型是指由两个或多个具体类型组成的联合类型,它们之间没有共同的父类型。在泛型类型中使用窄联合类型可以增加类型的灵活性和复用性。

例如,假设有一个泛型函数filter,它接受一个数组和一个回调函数作为参数,并返回一个经过筛选的新数组。我们可以使用窄联合类型来定义回调函数的参数类型,以适应不同的筛选条件。

代码语言:txt
复制
function filter<T>(array: T[], callback: (item: T) => boolean): T[] {
  return array.filter(callback);
}

// 使用窄联合类型定义回调函数的参数类型
const result1 = filter([1, 2, 3, 4, 5], (item: number) => item % 2 === 0);
console.log(result1); // [2, 4]

const result2 = filter(['a', 'b', 'c', 'd', 'e'], (item: string) => item.length > 1);
console.log(result2); // ['b', 'c', 'd']

在上面的例子中,我们使用窄联合类型(item: T) => boolean来定义回调函数的参数类型,其中T是泛型类型。这样,我们可以根据不同的数组类型传入不同的筛选条件,而不需要为每种类型都定义一个单独的回调函数类型。

总结一下,TypeScript允许在泛型类型中使用窄联合类型,这样可以增加代码的灵活性和复用性。在实际开发中,可以根据具体的需求来选择是否使用窄联合类型。

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

相关·内容

领券