泛型(Generics)是 TypeScript 中非常重要的特性,它允许我们创建可重用的组件,这些组件可以支持多种类型,而不会丢失类型安全性。
一、泛型基础
1. 基本概念
泛型允许我们在定义函数、接口或类时不预先指定具体类型,而是在使用时再指定类型。
// 不使用泛型
function identity(arg: number): number {
return arg;
}
// 使用泛型
function identity<T>(arg: T): T {
return arg;
}
2. 泛型变量
function loggingIdentity<T>(arg: T[]): T[] {
console.log(arg.length); // Array有length属性
return arg;
}
二、泛型类型
1. 泛型函数
function identity<T>(arg: T): T {
return arg;
}
// 两种调用方式
let output1 = identity<string>("myString"); // 显式指定类型
let output2 = identity("mySt