Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.8K
Views
Después de actualizar el mecanografiado ^3.7.2 al último "mecanografiado": "^4.4.4" - error TS2339: la propiedad 'msSaveOrOpenBlob' no existe en el tipo 'Navegador'

He usado este método msSaveOrOpenBlob. funcionaba correctamente, pero después de actualizar el mecanografiado a la última versión, recibo varios errores, hay dos errores.

window.navigator.msSaveOrOpenBlob(datos, nombre de archivo);

error TS2322: el tipo 'Promise<>' no se puede asignar al tipo 'IPromise<>'.

Cual es el arreglo de eso.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Es mi primer desarrollo en angular más específico en la versión 12, y creé un método en un componente que hace una descarga de un archivo xlsx, en Chrome funciona pero en IE no funciona, encuentro que agregando esta window.navigator.msSaveOrOpenBlob(data, filename); Explorer puede descargar el archivo, pero en el error de marca VSC y es

La propiedad 'msSaveOrOpenBlob' no existe en el tipo 'Navegador'

y cambio el módulo y lib en tsconfig.json ,

 "module": "es2020", "lib": [ "es2020", "dom" ]

para:

 "module": "es2015", "lib": [ "es2015", "dom" ]

En el código window.navigator.msSaveOrOpenBlob VSC marca lo mismo

Propiedad 'msSaveOrOpenBlob'....'

pero cuando ejecuto ng sirve su trabajo y descargo un archivo xlsx en IE y Chrome.

over 4 years ago · Santiago Trujillo Report

0

msSaveOrOpenBlob fue una adición patentada al objeto Navigator , agregada por Microsoft para Internet Explorer. Dado que Microsoft está eliminando gradualmente la compatibilidad con Internet Explorer, ha eliminado la compatibilidad con muchas de las adiciones no estándar realizadas a los archivos lib.dom.d.ts y lib.es*.d.ts que se envían con TypeScript. Consulte este problema de GitHub sobre los cambios en el archivo DOM.d.ts.

Como se indica en este problema de GitHub sobre el tema , tendrá que usar la combinación de declaraciones para agregar estos tipos a Navigator usted mismo.

over 4 years ago · Santiago Trujillo Report

0

La respuesta de @Heretic Monkey es correcta, pero si solo quiere solucionar el problema, ya que está usando TypeScript, puede convertirlo para escribir any antes de llamar a msSaveOrOpenBlob.

(window.navigator as any).msSaveOrOpenBlob(data, filename);

Además, debe asegurarse de que el objeto del navegador tenga el método en primer lugar, por lo que:

 const nav = (window.navigator as any); if (nav.msSaveOrOpenBlob) { nav.msSaveOrOpenBlob(data, filename); }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!