乐闻世界logo
搜索文章和话题

What are generics in TypeScript?

1 个月前提问
1 个月前修改
浏览次数9

1个答案

1

泛型是TypeScript的一个重要特性,它提供了一种方法来确保函数、类或接口可以使用任何类型,同时保持类型的安全性。它允许你在定义函数、接口或类时不具体指定要使用的数据类型,从而使得代码更加灵活和可复用。

例如,假设我们需要编写一个函数,该函数接受一个数组并返回数组的第一个元素。如果不使用泛型,我们可能需要为不同类型的数组编写多个函数:

typescript
function getFirstNumber(arr: number[]): number { return arr[0]; } function getFirstString(arr: string[]): string { return arr[0]; }

使用泛型,我们可以写一个适用于任何类型的单一函数:

typescript
function getFirstElement<T>(arr: T[]): T { return arr[0]; }

在上面的例子中,<T> 是一个占位符,表示将来会传入的数据类型。当我们实际调用 getFirstElement 函数时,TypeScript会根据传入的参数自动确定 T 的具体类型:

typescript
let numbers = [1, 2, 3]; let firstNumber = getFirstElement(numbers); // T 自动解析为 number 类型 let strings = ["apple", "banana", "cherry"]; let firstString = getFirstElement(strings); // T 自动解析为 string 类型

泛型的这种特性不仅可以提高代码的复用性,而且还保持了类型安全,确保函数可以接受适当类型的参数,同时返回适当类型的结果。这对于构建大型、可维护的应用程序来说非常重要。

2024年8月2日 13:56 回复

你的答案