typescript——7、把类作为参数类型的泛型类

定义一个User的类,这个类的作用就是映射数据库字段
然后定义一个MysqlDb的类这个类用于操作数据库
然后把User类作为参数传入到Mysql中

  1. 定义一个User类
 class User{
     username:string|undefined
     password:string|undefined
}
  1. 定义一个MysqlDb类
class MysqlDb{
    add(user:User):boolean{
        return true
    }
}
  1. 创建一个User的实例,并向MysqlDb添加该实例
var u = new User()
u.username = '张三'
u.password = '123456'

var Db = new MysqlDb()
Db.add(u)

这个例子就完成了,但是如果想在MysqlDb添加另外一个类的实例呢?此时就要再写一遍,代码冗余


class ArticleCate{
    title:string|undefined
    desc:string|undefined
    status:number|undefined
}

class MysqlDb{
    add(info:ArticleCate):boolean{
        return true
    }
}

var a = new ArticleCate()
a.title = "国内"
a.desc = "国内新闻"
a.status = 1

var Db = new MysqlDb()
Db.add(a)

解决方法,使用泛型类

// 操作数据库的泛型类
class MysqlDb<T>{
    add(info:T):boolean{
        return true
    }
}
// 想给User表增加数据
// 1.定义一个User类 和数据库进行映射
class User{
    username:string|undefined
    password:string|undefined
}
var u = new User()
u.username = '张三'
u.password = '123456'

var Db = new MysqlDb<User>()
Db.add(u)
// 2.定义一个ArticleCate类 和数据库进行映射
class ArticleCate{
    title:string|undefined
    desc:string|undefined
    status:number|undefined
    constructor(params:{
        title:string|undefined
        desc:string|undefined
        status?:number|undefined
    }){
        this.title = params.title
        this.desc = params.desc
        this.status = params.status
    }
}
var a = new ArticleCate({
    title:'分类',
    desc:'111'
})

var Db2 = new MysqlDb<ArticleCate>()
Db2.add(a)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值