Web3 元掩码连接无法读取未定义的属性(读取 'ethereum')

Web3 metamask connection Cannot read properties of undefined (reading 'ethereum')

我有一个 React 应用程序,我在其中尝试通过 web3 连接到元掩码扩展。在我的 thunk.ts 中,我正在调用所需的函数,但出现类型错误,我无法读取未定义的属性(读取 'ethereum')。这是我正在使用的代码



if (window.ethereum) {//the error line
      window.web3 = new Web3(window.ethereum);

    try {
      await window.ethereum.enable();

      updateAddress(dispatch);
    } catch (err) {
      alert("Something went wrong.");
    }
  } else if (window.web3) {
    window.web3 = new Web3(window.web3.currentProvider);
    updateAddress(dispatch);
  } else {
    alert("You have to install MetaMask !");
  }
};

错误截图如下

我用下面的代码解决了

declare global {
  interface Window {
    ethereum?: any;
    web3?:any
  }
}