TypeScript 类型、类、接口、泛型综合使用,练习模拟操作数据库

需求:定义一个操作数据库的库,支持不同数据库,不同数据库的功能都一样,都有增add、update、delete、get方法

需要约束规范所以要定义接口,需要代码重用所以用到泛型

先定义一个泛型接口,包含几个数据库操作都要实现的方法:

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

接下来定义操作 Mysql 数据库的类:

实现接口中的方法,可以自己在 MySql类中手敲,也可以把鼠标放在类上,点击快速修复(Quick fix)->实现接口,就自动生成了代码:

实现泛型接口,这个类也应该是泛型类

// 操作 Mysql 数据库的类
class MySql<T> implements DB<T>{
    
    
    add(info: T): boolean {
    
    
        console.log(info);
        return true
    }
    delete(id: number): boolean {
    
    
        throw new Error("Method not implemented.");
    }
    update(info: T, id: number): boolean {
    
    
        throw new Error("Method not implemented.");
    }
    get(id: number): any {
    
    
        return {
    
    
            name:'ming',
            age:22
        }
    }
}

定义User类 和数据表做映射:

class User{
    
    
    name:string|undefined;
    age:number|undefined;
}
let u = new User()
u.name = 'lucy'
u.age = 18

let oMySql = new MySql<User>()   //类作为参数约束数据传入的类型
oMySql.add(u)   // User { name: 'lucy', age: 18 }

let data = oMySql.get(4)
console.log(data);   //{ name: 'ming', age: 22 }

おすすめ

転載: blog.csdn.net/qq_39706777/article/details/121346185