美文网首页
Typescript 使用接口 泛型 类实现操作多种数据库的库

Typescript 使用接口 泛型 类实现操作多种数据库的库

作者: Betterthanyougo | 来源:发表于2020-05-05 22:48 被阅读0次

功能:定义一个操作数据库的库 支持mysql mssql MongoDb
要求:mysql mssql MoingoDb功能一样 都有add update delete get 方法
注意:约束统一规范 以及代码重用
1、首先用接口定义一个规范,规范里确定使用该接口的类要实现的方法

interface DBI<T>{
    add(value:T):boolean
    update(value:T,id:number):boolean
    delete(id:number):boolean
    get(id:number):any
}

2、实现泛型类 要实现泛型接口 这个类必须是泛型类!!!

class mysqlDb<T> implements DBI<T>{
    add(value: T): boolean {
        return true
    }
    update(value: T, id: number): boolean {
        return true
    }
    delete(id: number): boolean {
        return true
    }
    get(id: number): any[] {
        var list=[
            {
                id:1,
                name:'aaa'
            },
            {
                id:2,
                name:'bbb'
            }
        ]
        return list
    }
}
//实现mongoDb类
class MongoDb<T> implements DBI<T>{
    add(value: T): boolean {
        return true
    }
    update(value: T, id: number): boolean {
        return true
    }/*  */
    delete(id: number): boolean {
        return true
    }
    get(id: number): boolean {
        return true
    }
}

3、定义类 当做约束

class User{
    username:string | undefined;
    password:string | undefined;
}
class Artical{
    title:string | undefined;
    desc:string | undefined;
    type:number | undefined;
}
4、实例化类
var u = new User()
var a = new Artical()

u.username='张三'
u.password='123456'

a.title='一本书'
a.desc='这是一本好书'
a.type=1

var mysql=new mysqlDb<User>()
var mongoDb=new MongoDb<Artical>()

mysql.add(u)
mongoDb.update(a,1)

泛型接口 -> 泛型类 -> 传入参数(user类 | Artical类 实例化的对象)
反过来看 user类 | Artical类实例化后传入泛型类 泛型类又遵从泛型接口 其实传入参数是受限制于最初始的泛型接口 从而实现限制传入该方法的数据

相关文章

  • Typescript 使用接口 泛型 类实现操作多种数据库的库

    功能:定义一个操作数据库的库 支持mysql mssql MongoDb要求:mysql mssql Moingo...

  • typescript入门-泛型

    基础定义 泛型接口 泛型类 泛型约束 使用类类型

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • TypeScript 学习笔记4 泛型

    1.泛型 1.1 泛型函数 1.2 泛型类 1.3 泛型接口 Typescript从0到1-学习视频教程-培训课程...

  • TS 泛型+装饰器

    typescript 中的泛型 泛型的定义泛型函数泛型类泛型接口 泛型:软件工程中,我们不仅要创建一致的定义良好的...

  • Kotlin泛型 (4)泛型接口

      自定义泛型接口和自定义泛型类声明方式完全一样。以下是对上一章节泛型类代码的修改,配合使用泛型接口实现队列功能。...

  • Java 19-5.1泛型

    泛型类定义泛型类可以规定传入对象 泛型类 和泛型方法 泛型接口 如果实现类也无法确定泛型 可以在继承类中确定泛型:

  • 泛型

    问题引入 泛型引入 如果使用泛型类或接口的时候,用Object 通配符 不设置方法类型 泛型接口 定义接口泛型 在...

  • Java-API-集合框架(三)-泛型

    泛型的由来和基本使用 泛型的擦除 泛型类的使用 泛型方法的使用 泛型接口 泛型通配符(?) 通配符? 在api中的...

  • class 类

    基本用法 构造函数和this 继承 抽象类 接口(TypeScript 独有) 属性的封装 泛型

网友评论

      本文标题:Typescript 使用接口 泛型 类实现操作多种数据库的库

      本文链接:https://www.haomeiwen.com/subject/ptlbghtx.html