【发布时间】:2020-05-25 19:39:31
【问题描述】:
为一个项目制作我自己的 mysql orm。我有一个抽象的“模型”类,我制作的其他模型可以继承并拥有它们的所有方法和属性。目前我唯一的问题是我想指定一个方法将返回扩展它的类的类型。这是一些代码。
import db from '../db'
export default abstract class Model {
protected static TableName: string
protected static Columns: string[]
protected constructor() {
console.log('Constructing a model')
}
//Change Model here to like "type of this"
public static async findByID(id: string): Promise<Model> {
const query = `select ${this.columns} from ${db.name}.${this.TableName} where ${this.Columns[0]}='${id}'`
return (await db.query(query) as Model[])[0] //Change Model here to like "type of this"
}
private static get columns(): string {
return this.Columns.reduce((acc, cur, i, arr) => i !== arr.length - 1 ? acc + cur + ', ' : acc + cur, '')
}
}
我知道潜在的 sql 注入。 谢谢!
【问题讨论】:
标签: typescript