Transactions 编写一个TypeORM@Transaction方法,当使用此方法时,IDE报告错误为;参数数无效,应为2“;
我以typeform office document()的形式编写了一个事务处理方法 代码如下:Transactions 编写一个TypeORM@Transaction方法,当使用此方法时,IDE报告错误为;参数数无效,应为2“;,transactions,visual-studio-code,ide,webstorm,typeorm,Transactions,Visual Studio Code,Ide,Webstorm,Typeorm,我以typeform office document()的形式编写了一个事务处理方法 代码如下: @Transaction('some-db-connection') public async savePhoto(record: DeepPartial<Photo>, @TransactionManager() manager: EntityManager) { return await manager.save<Deep
@Transaction('some-db-connection')
public async savePhoto(record: DeepPartial<Photo>,
@TransactionManager() manager: EntityManager) {
return await manager.save<DeepPartial<Photo>>(record)
}
VS代码和WebStorm都将错误报告为“参数数无效,预期为2”。有人知道如何让IDE不报告此错误吗?谢谢
附言
虽然IDE报告错误,但代码可以无错误地执行
我所有的代码都是.ts文件中的TypeScript代码有两种解决方案适合我:
// @ts-ignore
await savePhoto(photo);
- 如前所述,将第二个参数设为可选应该可以
@Transaction() public async savePhoto( photo: Photo, @TransactionManager() manager?: EntityManager ): Promise<Photo> { return manager.save(photo); }
savePhoto()
方法声明为具有2个非可选参数,但使用单个参数调用。因此,错误是正确的。您可以在代码中将manager
设置为可选(manager?
),或者使用JSDoc注释shi lena,如果我使用manager?,我必须将“wait someRepo.savePhoto(record)”包装为If(manager),如下所示:If(manager){wait someRepo.savePhoto(record)},否则IDE(或TypeScript编译器)将给出错误:manager可能未定义。你能给我一个JSDoc注释的例子吗,谢谢!我将文档注释添加为,但无法解决IDE错误警告/***@param{EntityManager=}[manager=someManager]*/我觉得您的第二个选项不是可行的选项,这需要在每次使用函数(或任何数据库服务)时添加@ts ignore。您建议的第一个选项是在调用“save”方法之前缺少“?”。由于您声明manager可能未定义,因此在使用它时,TS将向您提示一个错误,说明它可能未定义,因此调用“.save”无法无风险完成。
// @ts-ignore
await savePhoto(photo);