把类作为参数的泛型类
/**
* 定义一个User的类作用是映射数据库字段
* 定义一个MysqlDb类用于操作数据库
* 把User类作为参数传到MysqlDb中
*/
// class User {
// username: string | undefined
// password: string | undefined
// }
// class MysqlDb {
// add(user: User): boolean {
// console.log(user)
// return true
// }
// }
// var u = new User()
// u.username = '张三'
// u.password = '123456'
// var Db = new MysqlDb()
// console.log(Db.add(u))
// class ArticleCate {
// title: string | undefined
// desc: string | undefined
// status: number | undefined
// }
// class MysqlDb1 {
// add(a: ArticleCate): boolean {
// console.log(a)
// return true
// }
// }
// var ar = new ArticleCate()
// ar.title = '国内'
// ar.desc = '国内新闻'
// ar.status = 1
// var Db1 = new MysqlDb1()
// console.log(Db1.add(ar))
//上面每创建一个数据表都要重新写一个MysqlDb类
//下面就是把类作为参数的泛型类
class MysqlDb<T> {
add(info: T): boolean {
console.log(info)
return true
}
}
class User {
username: string | undefined
password: string | undefined
}
var u = new User()
u.username = '张三1'
u.password = '1235567'
var m = new MysqlDb<User>()
m.add(u)
class ArticleCate {
title: string | undefined
desc: string | undefined
static?: number | undefined
constructor(params: {
title: string | undefined
desc: string | undefined
static?: number | undefined
}) {
this.title = params.title
this.desc = params.desc
}
}
var ar = new ArticleCate({
title:'分类',
desc:'12121'
})
var Db = new MysqlDb<ArticleCate>()
Db.add(ar)