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
posted @ 2022-07-27 10:32  Simon9527  阅读(23)  评论(0编辑  收藏  举报