位置:首页 > web前端 > typescript

typescript类型 接口 类 泛类型的综合使用

dearweb 发布:2021-07-31 14:52:23阅读:

需要约束规范所以要定义接口,需要代码重用所以用到泛型接口 在面向对象的编程中接口是一种规范的定义,它定义了行为和动作的规范, 泛型 通俗理解:泛型就是解决类、接口的复用性。

interface DBI<T>{
  add(info:T):boolean;
  update(info:T,id:number):boolean;
  delete(id:number):boolean;
  get(id:number):any[];
}

// 定义一个操作Mysql的数据库的类  注意:要实现泛类型接口 这个类也应该是一个泛类型

class MysqlDb<T> implements DBI<T> {
  add(info: T): boolean {
    console.log(info)
    return true
    throw new Error("Method not implemented.")
  }

  update(info: T, id: number): boolean {
    throw new Error("Method not implemented.")
  }

  delete(id: number): boolean {
    throw new Error("Method not implemented.")
  }
  
  get(id: number): any[] {
    throw new Error("Method not implemented.")
  }
  
}

// 定义一个操作mssql的数据库的类

class MssqlDb<T> implements DBI<T> {
  add(info: T): boolean {
    throw new Error("Method not implemented.")
  }

  update(info: T, id: number): boolean {
    throw new Error("Method not implemented.")
  }

  delete(id: number): boolean {
    throw new Error("Method not implemented.")
  }
  
  get(id: number): any[] {
    throw new Error("Method not implemented.")
  }
}

// 操作用户表  定义一个user类和数据表做映射

class User {
  username:string | undefined
  password:string | undefined
}

let U = new User()
U.username = '李四'
U.password = '12345678'

let oMysql = new MysqlDb<User>();
oMysql.add(U)  //  {username: "李四", password: "12345678"}


24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

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

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

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

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