ts中的泛型

泛型

为什么要用泛型?泛型有什么好处,看下面的示例

视频教程地址

不用泛型

class Lee {
    name: string = 'hanyun'

    say() {
        console.log(this.name)
    }
}

let lee = new Lee();
lee.say();
复制代码

运行结果

hanyun

复制代码

你要加个age属性,一个身高属性,就要更改多出代码

泛型的写法

interface IUser {
    name: string
}

class Lee<IUser> {
    user: IUser
    constructor(user: IUser) {
        this.user = user
    }

    say() {
        console.log(this.user)
    }
}

let lee = new Lee({name: "hanyun"})
lee.say();
复制代码

运行结果

{ name: 'hanyun' }
复制代码

你要加个age属性,一个身高属性,只需要新修改接口,更改构造函数,里面的代码逻辑不需要修改

看完上面的示例,你会觉得用了泛型好麻烦,代码量一下多了好多!我不仅要定义接口,还要处理接口,好麻烦!是的。猛然一看的确很麻烦,目前来看貌似增加了很多工作量。可是过了一个月之后而呢?你再回来看你的代码,你还能记得你写的什么吗?我想,大概是不记得了。这个时候接口可以帮你回想很多事情,他帮你理一下代码逻辑,比如上面的代码,通过接口定义的泛型,让你知道user有哪些属性,你更改代码的时候思路很清晰。同时,你的IDE会给你进行代码检查和提示,减轻你的工作量,省去很多麻烦。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享