好说我有一个从数据库获取数据并返回的函数,返回的数据被“键入”为:
export type ModelTy = {
id: number;
name: string;
}
function dbGetter(): Promise<ModelTy[]> {
}
借助knex,我可以做到:
function dbGetter(): Promise<ModelTy[]> {
return await db().select().from<ModelTy>("table");
}
这将自动管理返回类型。现在,我尝试使用objection
做类似的事情:
TableModel extends Model {
static get tableName() {
return "table"
}
static get idColumn() {
return "id";
}
static get nameColumn() {
return "name";
}
}
function dbGetter(): Promise<ModelTy[]> {
Model.knex(db);
return await TableModel.query();
}
然而,这是一个不同的“类型”检查,表明它具有id
和name
属性,但打字稿无法识别它们。
我如何使TypeScript识别此问题?还是在这里强制转换类型是最好的出路?