#typescript #ethereum
Вопрос:
Я установил @walletconnect/web3-провайдер»: «^1.6.6». В node_modules/walletlink/dist/index.d.ts этот пакет описывает глобальное окно.тип эфириума:
import { WalletLinkProvider } from "./provider/WalletLinkProvider"; import { WalletLink } from "./WalletLink"; export { WalletLinkProvider } from "./provider/WalletLinkProvider"; export { WalletLink } from "./WalletLink"; export default WalletLink; declare global { interface Window { WalletLink: typeof WalletLink; WalletLinkProvider: typeof WalletLinkProvider; ethereum?: WalletLinkProvider; walletLinkExtension?: WalletLinkProvider; } }
Мне нужно добавить поле autoRefreshOnNetworkChange:
window.ethereum.autoRefreshOnNetworkChange = false;
Вопрос в том, как изменить окно.типа эфириума? Должен ли / могу ли я расширить WalletLink Provider для этого?
Это не работает:
declare module 'walletlink' { export class WalletLinkProvider { autoRefreshOnNetworkChange: boolean } }
Это тоже не работает:
declare module 'walletlink/dist/provider/WalletLinkProvider' { export class WalletLinkProvider { autoRefreshOnNetworkChange: boolean } }
Я всегда получаю ошибку:
TS2339: Свойство «autoRefreshOnNetworkChange» не существует для типа «WalletLink Provider».
Когда я пытаюсь как-то глобально измениться:
declare global { interface Window { ethereum?: any } }
Я получаю:
TS2717: Последующие объявления свойств должны иметь один и тот же тип. Свойство «ethereum» должно иметь тип «WalletLink provider», но здесь имеет тип «любой». index.d.ts(10, 9): здесь также был объявлен «ethereum».