9.泛型
一、函数中的泛型
基础语法:
function 函数名<类型变量名>(参数名: 类型变量名): 类型变量名 {
return 返回值;
}
函数名<数据类型>(参数)
当函数调用时,<数据类型>
中的数据类型会传递到函数的“类型变量名”身上。
示例代码:
function foo<T>(x: T): T {
return x;
}
foo<number>(100);
foo<string>('100');
定义多个泛型变量
function foo<T, U>(x: T, y: U): U {
return y;
}
foo<number, string>(100, 'hello');
二、接口中的泛型
基础语法:
interface 接口名<类型变量名> {
属性名: 类型变量名
}
const 变量名: 接口名<数据类型> = 值;
示例代码:
interface Person<T> {
name: string;
age: T
}
const student: Person<number> = { name: '张三', age: 20 }
const teacher: Person<string> = { name: '张三', age: '20' }
三、class 中的泛型
基础语法:
class 类名<类型变量名> {
属性名: 类型变量名;
contructor(形参名: 类型变量名) {
this.属性名 = 形参名;
}
}
new 类名<数据类型>(实参)
示例代码:
xxxxxxxxxx class Person<T> { age: T; constructor(age: T) { this.age = age; }}new Person<number>(20);new Person<string>('20');ts