Bookshelf.js存在Related TypeScript错误



因此,在我的应用程序中,我有类别文章,它们是相互关联的。起初,我检索所有类别,每个类别中都有文章。问题是,我想通过userId过滤其中的类别文章,但我不知道如何做到这一点,因为我使用TypeScript并出现错误。

const articlesInCategories = (await (await ArticleCategory.fetchAll())
.query((qb: QueryBuilder) => {
qb.innerJoin(Table.ARTICLE_CATEGORY_RELATION, 'article_category_relation.category_id', 'article_category.id' );
qb.innerJoin(Table.ARTICLE, 'article.id', 'article_category_relation.article_id');
// Next condition is only for Categories not for Articles inside it
if (roleId == Role.manager) {
qb.where('user_id', userId);
}
qb.orderBy('id', 'desc');
})
.fetch({
withRelated: [{'articles': function (qb: QueryBuilder) => qb.where('user_id', userId)}]
}));

例如,如果userId1,则只想获得那些类别,这些类别包含id为1的用户编写的文章。MOREOVER,并非所有文章,但仅由id为1的用户编写。

我在withRelated:Type '{ articles: (qb: QueryBuilder) => QueryBuilder<any, any[]>; }' is not assignable to type 'string'.ts(2322)附近有TS错误

在这种情况下,你能帮我使用TypeScript吗?或者建议任何其他方法来实现我想要的东西?

这是错误的方法。如果我做到以下几点,效果会很好:

const articlesInCategories = await new ArticleCategory().query((qb: QueryBuilder) => {
.query((qb: QueryBuilder) => {
qb.innerJoin(Table.ARTICLE_CATEGORY_RELATION, 'article_category_relation.category_id', 'article_category.id' );
qb.innerJoin(Table.ARTICLE, 'article.id', 'article_category_relation.article_id');
if (roleId == Role.manager) {
qb.where('user_id', userId);
}
qb.orderBy('id', 'desc');
})
.fetch({
withRelated: [{ 'articles': (qb: QueryBuilder) => qb.where('user_id', userId) }]
}));

最新更新