typescript把类作为参数类型的泛型类
dearweb
发布:2021-07-31 13:09:20阅读:
今天我们一起来讨论一下把类作为参数类型的泛型类
把类作为参数约束数据传入的类型
首先定义一个User的类,这个类的作用就是映射数据库字段,然后定义一个MysqlDb的类,这个类用于操作数据库,然后把User类作为参数传到MysqlDb中。
class User {
username:string | undefined
password:string | undefined
}
class MysqlDb {
add(user:User){
console.log(user)
return true
}
}
let U = new User()
U.username='张三'
U.password='12345'
let Db = new MysqlDb()
console.log(Db.add(U)) //User {username: "张三", password: "12345"} true写法例子
class ArticleCate{
title:string | undefined
desc:string | undefined
status:number | undefined
}
class MysqlDb {
add(info:ArticleCate){
console.log(info)
return true
}
}
let A = new ArticleCate()
A.title='今天发生了什么'
A.desc='今天是几月几日'
A.status=1
let Db = new MysqlDb()
console.log(Db.add(A)) //info {title: "今天发生了什么", desc: "今天是几月几日",status:1}操作数据库的泛型类,可以解决重复定义
// 操作数据库的泛型类 可以解决重复定义
class MysqlDb<T> {
add(info:T):boolean{
console.log(info)
return true
}
}
// 想给user表增加数据
class User {
username:string | undefined
password:string | undefined
}
let U = new User();
U.username = '李四'
U.password = '5585858'
let Db = new MysqlDb<User>()
Db.add(U) //{username: "李四", password: "5585858"}
// 定义一个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
}
}
let A = new ArticleCate({
title:"分类文章",
desc:'文章简介',
status:1
})
console.log(A) // {title: "分类文章", desc: "文章简介", status: 1} 小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧