Ethers.js

ethers.BigNumber.toNumber 不是函式

  • December 18, 2020
const { ethers } = require('ethers');
console.log(ethers.BigNumber.isBigNumber(totalBalance));

返回真

const { ethers } = require('ethers');
console.log(ethers.BigNumber.toNumber(totalBalance));

ethers.BigNumber.toNumber 不是函式

根據文件

https://docs.ethers.io/v5/api/utils/bignumber/#BigNumber

toNumber()是 上的一個函式BigNumber

文件是錯誤的還是被toNumber稱為錯誤的?

該方法isBigNumber是類的靜態方法ethers.BigNumber

你可以在這裡閱讀:

static關鍵字定義類的靜態方法或屬性。不能在類的實例上呼叫靜態方法和靜態屬性。相反,它們是在類本身上呼叫的。


toNumber另一方面,方法不是類的靜態方法ethers.BigNumber

因此,應該在類的實例而不是類本身上呼叫它。

所以簡而言之,你需要改變這個:

ethers.BigNumber.toNumber(totalBalance)

對此:

ethers.BigNumber(totalBalance).toNumber()

引用自:https://ethereum.stackexchange.com/questions/91251