使用TypeORM和BigNumber.js存储十进制数



在我的实体十进制字段上显示如下:

@Column('decimal', { precision: 10, scale: 2 })
amount!: BigNumber

我从DTO映射这个实体字段,DTO处理nest-js控制器的请求主体。在DTO中,我定义了这样的字段:

@Transform(value => new BigNumber(value))
amount!: BigNumber

当我删除@Transform(value => new BigNumber(value))代码时,开始工作,但DTO的amount字段不是BigNumber对象,只是包含带amount的字符串。在我的服务组件中,需要使用BigNumber的函数,但我不能,因为这个数量的行为就像一个字符串。

例如,当我在DTO字段上调用*.compareTo()时,我得到的错误是没有函数compareTo,如果我向DTO添加@Transform decorator,compareTo和其他函数可以正常工作,但我在DB中有错误。我正在使用postgres。谢谢你的建议。

添加@Type(((=>BigNumber(可能会有所帮助。参见";使用嵌套对象";中的部分https://www.npmjs.com/package/class-transformer

最新更新