• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

7、TypeScript类型、接口、类、泛型综合使用--TypeScript封装统一操作MysqlMongodbMss ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
功能:定义一个操作数据库的库,支持Mysql Mssql Mongodb
要求:Mysql Mssql Mongodb功能一样 都有add、update、delete、get方法
注意:约束统一的规范、以及代码重用
解决方案:需要约束规范要定义接口,需要代码重用所以要用到泛型
  1、接口:在面向对象的编程中,接口是一种规范的定义,他定义了行为和动作的规范。
  2、泛型:解决类、接口、方法的复用性。
interface DBI<T>{
  add(info:T):boolean;
  update(info:T,id:number):boolean;
  delete(id:number):boolean;
  get(id:number):any[];
}

// 定义一个操作mysql数据库类    注意:要实现泛型接口 这个类应该是一个泛型类。
class MysqlDbs<T> implements DBI<T>{
  constructor(){
    console.log('建立连接成功');
  }
  add(info: T): boolean {
    console.log(info);
    return true;
  }
  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 MssqlDBs<T> implements DBI<T>{
  constructor(){
    console.log('建立连接成功');
  }
  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[] {
    var list = [
      {
        title:'垃圾箱',
        desc:'华展智能垃圾箱'
      },
      {
        title:'候车厅',
        desc:'华展智能候车厅'
      }
    ]
    return list;
  }
}

// 操作用户表 定义一个user类和数据表做映射
class User{
  username:string | undefined;
  password:string | undefined;
}
var u = new User();
u.username = 'root';
u.password = '123456';
var oMysql = new MysqlDbs<User>();//类作为参数来约束数据传入的类型
oMysql.add(u);

var oMssql = new MssqlDBs<User>();
var data = oMssql.get(4);
console.log(data);

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
react项目添加typescript类型定义文件 .d.ts发布时间:2022-07-18
下一篇:
体验TypeScript发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap