异议和打字稿打字

时间:2020-07-16 13:32:37

标签: typescript knex.js objection.js

好说我有一个从数据库获取数据并返回的函数,返回的数据被“键入”为:

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();
}

然而,这是一个不同的“类型”检查,表明它具有idname属性,但打字稿无法识别它们。

我如何使TypeScript识别此问题?还是在这里强制转换类型是最好的出路?

0 个答案:

没有答案