TypeORM中delete异步方法的类型是什么?示例方法返回类型问询
TypeORM删除方法及自定义异步方法的类型说明
1. TypeORM中delete异步方法的类型
在TypeORM中,通过QueryBuilder调用的delete().execute()异步方法,返回类型为Promise<DeleteResult>。其中DeleteResult是TypeORM内置的类型,结构如下:
{ raw: any[], // 数据库返回的原始结果,格式随数据库类型不同而变化 affected: number // 被删除的条目数量,未删除任何条目时为0,成功删除则对应实际条数 }
2. deleteMultiple方法的返回类型说明
你提供的deleteMultiple方法:
- 它的返回类型确实是Promise类型,具体为
Promise<DeleteResult>,这一点从方法声明Promise<DeleteResult>以及async关键字可以确认。 - 在JavaScript/TypeScript中,所有用
async修饰的方法,其返回值都会自动被包装为Promise,即便方法内部直接返回非Promise值,最终返回的也是包含该值的Promise实例。 - 方法内部通过
await获取execute()返回的DeleteResult后直接返回,完全符合声明的返回类型要求。
附你提供的方法代码:
async deleteMultiple ( userId: number, items: number[], ): Promise<DeleteResult> { const result = await this._sampleRepository .createQueryBuilder() .delete() .from(SampleEntity) .where('id IN (:...id)', { id: items }) .execute(); if (result.affected) { await this._sampleChangesService.create( userId, SampleDataTypes.SAMPLE_CONSTANT, [changeActions.DELETE], ); } return result; }
内容的提问来源于stack exchange,提问作者Narek Keshishyan
相关产品推荐
相关产品推荐

