位置:首页 > web前端 > typescript

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}
24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看