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}
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧