以下是一个简单的 TypeScript 泛型示例:
// 使用泛型定义一个函数,该函数返回传入的参数数组的第一个元素
function getFirstElement<T>(arr: T[]): T | undefined {
return arr.length > 0 ? arr[0] : undefined;
}
// 使用泛型函数
const stringArray: string[] = ["apple", "banana", "orange"];
const firstElementOfStringArray: string | undefined = getFirstElement(stringArray);
console.log(firstElementOfStringArray); // 输出: "apple"
const numberArray: number[] = [1, 2, 3, 4, 5];
const firstElementOfNumberArray: number | undefined = getFirstElement(numberArray);
console.log(firstElementOfNumberArray); // 输出: 1
在上面的例子中,getFirstElement 函数使用了泛型 <T>,这使得函数可以处理不同类型的数组。通过传递不同类型的数组,我们可以在不同上下文中重复使用这个函数。
你还可以在类和接口中使用泛型。以下是一个简单的泛型类示例:
// 泛型类
class Container<T> {
private value: T;
constructor(initialValue: T) {
this.value = initialValue;
}
getValue(): T {
return this.value;
}
}
// 使用泛型类
const numberContainer = new Container<number>(42);
console.log(numberContainer.getValue()); // 输出: 42
const stringContainer = new Container<string>("Hello, TypeScript!");
console.log(stringContainer.getValue()); // 输出: "Hello, TypeScript!"
通过泛型,你可以在编写 TypeScript 代码时更灵活地处理不同类型的数据,同时仍然保持类型安全。
转载请注明出处:http://www.zyzy.cn/article/detail/13024/TypeScript