1. 泛型基础
泛型允许我们在定义函数、接口或类时不预先指定具体的类型,而是在使用时再指定具体的类型
// 泛型函数
function identity<T>(arg: T): T {
return arg;
}
console.log(identity<string>("Hello")); // Hello
console.log(identity<number>(123)); // 123
2. 泛型接口
interface Box<T> {
value: T;
}
const stringBox: Box<string> = { value: "Hello" };
const numberBox: Box<number> = { value: 123 };
3. 泛型类
class GenericClass<T> {
private data: T;
constructor(data: T) {
this.data = data;
}
getData(): T {
return this.data;
}
}
const numberInstance = new GenericClass<number>(42);
console.log(numberInstance.getData());