Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

148
Vistas
Cómo escribir una interfaz mecanografiada para el objeto de ventana ethereum que tiene un método de solicitud que se llama

estoy ejecutando la siguiente funcion

 import { ethers } from "ethers"; async function requestAccount() { await window.ethereum.request({ method: "eth_requestAccounts" }); }

El problema que tengo es que estoy usando mecanografiado y se queja con el siguiente error

Property 'ethereum' does not exist on type 'Window & typeof globalThis'

Entonces pude arreglarlo con lo siguiente

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

Sin embargo, no creo que esto se esté aprovechando correctamente de mecanografiado. ¿Cómo lo escribiría para que el valor de la interfaz sea correcto? Supongo que debería ser un objeto con un método dentro, pero no estoy seguro de cómo escribirlo en mecanografiado.

Cualquier ayuda sería muy apreciada.

Gracias

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Esta es una pregunta bastante antigua, pero si usted u otra persona todavía está buscando una respuesta, puede usar el tipo de ethers ExternalProvider .

 interface Window { ethereum?: import('ethers').providers.ExternalProvider; }

Aquí está la versión extraída de ExternalProvider si no está usando éteres

 type ExternalProvider = { isMetaMask?: boolean; isStatus?: boolean; host?: string; path?: string; sendAsync?: (request: { method: string, params?: Array<any> }, callback: (error: any, response: any) => void) => void send?: (request: { method: string, params?: Array<any> }, callback: (error: any, response: any) => void) => void request?: (request: { method: string, params?: Array<any> }) => Promise<any> }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Resolví el error de tipo temporalmente por:

  • agregue: declare let window: any en el nivel superior después de sus importaciones. Ahora puede llamar a window.ethereum con la advertencia y el error de tipo desactivados.

Creo que esto anula el objeto de la ventana global con un tipo any . Estoy seguro de que esta no es la mejor manera de solucionarlo, es una especie de truco, pero corrige el error de tipo mientras tanto. Déjame saber si esto funcionó para tu caso.

about 4 years ago · Juan Pablo Isaza Denunciar

0

npm i @metamask/providers

Instale el paquete anterior:

 import { MetaMaskInpageProvider } from "@metamask/providers"; declare global { interface Window{ ethereum?:MetaMaskInpageProvider } }

después

 const accounts = (await ethereum?.request({ method: "eth_requestAccounts", })) as string[];
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda