Se actualizó a Angular 7 con TypeScript 3.2.4 y ahora obtengo lo siguiente cada vez que compilo:
import swal from 'sweetalert';
swal({ ... });
ERROR en node_modules / sweetalert / typings / sweetalert.d.ts (4,9): error TS2403: las declaraciones de variables posteriores deben tener el mismo tipo. La variable 'swal' debe ser del tipo 'typeof import ("C: / Projects / me / browser / node_modules / sweetalert / typings / sweetalert")', pero aquí tiene el tipo 'SweetAlert'.
Si edito node_modules/sweetalert/typings/sweetalert.d.ts
de ...
import swal, { SweetAlert } from "./core";
declare global {
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
export default swal;
export as namespace swal;
... a ...
import swal, { SweetAlert } from "./core";
export default swal;
export as namespace swal;
... empieza a funcionar.
¿Algunas ideas?
Mismo problema, misma situación.
Sin embargo, noté que con solo comentar la línea export as namespace swal;
también se puede compilar. He estado mirando los registros de cambios de TypeScript en busca de pistas ...
Mismo problema, misma situación.
Sin embargo, noté que con solo comentar la línea
export as namespace swal;
también se puede compilar. He estado mirando los registros de cambios de TypeScript en busca de pistas ...
mismo problema
Utilicé esta solución
pero no creo que esta solución sea correcta.
Mismo problema.
También el mismo problema. Las compilaciones de CI fallan debido a esto.
Tengo este mismo problema cuando ejecuto bajo OpenBSD. Sí, no conozco un sistema operativo convencional, pero la versión de TypeScript disponible hace que cualquier cosa con sweetalert sea inutilizable :(
Tengo este mismo problema cuando ejecuto bajo OpenBSD. Sí, no conozco un sistema operativo convencional, pero la versión de TypeScript disponible hace que cualquier cosa con sweetalert sea inutilizable :(
@ t4t5 ¿Puedes echar un vistazo a este tema?
También experimentando esto con Angular 7
¿Alguna idea sobre una solución alternativa además de editar el archivo de definición manualmente? Se está volviendo un poco complicado recordar hacer eso después de cada instalación de clonación / npm.
@ bogdan-calapod Esto es lo que he estado haciendo como solución, para que nuestra compilación de CI no falle:
sweetalert.min.js
).sweetalert.min.js
en src/assets/scripts
en la aplicación Angular.src/assets/scripts/sweetalert.min.js
a scripts
entrada en angular.json
declare var swal: any;
encima de la declaración de clase.swal
, es decir, return swal({...})
npm uninstall sweetalert --save
Hola a todos,
Ahórrese el esfuerzo y use sweetalert 2 https://sweetalert2.github.io/
¿Alguna actualización con este problema?
Hola a todos,
Ahórrese el esfuerzo y use sweetalert 2 https://sweetalert2.github.io/
¿Tiene soporte para 3 botones o más?
@DVGalarza, esta solución no funcionó para mí. ReferenceError: "el trago no está definido" es lo que obtengo.
@ alvarofelipe12 En el archivo en el que está intentando usar 'swal', ¿agregó declare var swal: any;
al principio del archivo (debajo de las importaciones)? Si es así, compruebe también que se hace referencia a sweetalert.min.js
correctamente en la sección 'scripts' de angular.json
.
Se actualizó a Angular 7 con TypeScript 3.2.4 y ahora obtengo lo siguiente cada vez que compilo:
import swal from 'sweetalert'; swal({ ... });
ERROR en node_modules / sweetalert / typings / sweetalert.d.ts (4,9): error TS2403: las declaraciones de variables posteriores deben tener el mismo tipo. La variable 'swal' debe ser del tipo 'typeof import ("C: / Projects / me / browser / node_modules / sweetalert / typings / sweetalert")', pero aquí tiene el tipo 'SweetAlert'.
Si edito
node_modules/sweetalert/typings/sweetalert.d.ts
de ...import swal, { SweetAlert } from "./core"; declare global { const swal: SweetAlert; const sweetAlert: SweetAlert; } export default swal; export as namespace swal;
... a ...
import swal, { SweetAlert } from "./core"; export default swal; export as namespace swal;
... empieza a funcionar.
¿Algunas ideas?
mi alternativa era cambiar el nombre de const swal a const _swal
importar tragar, {SweetAlert} de "./core";
declare global {
const _swal: SweetAlert;
const sweetAlert: SweetAlert;
}
exportar gol por defecto;
exportar como espacio de nombres tragar;
hola, mismo problema
Arreglé esto anulando los tipos de sweetalert. Agregué un archivo en el directorio src llamado src/node_modules/sweetalert/index.d.ts
//this file is needed because the sweetalert typings need to be overwritten because they are broken
//the real fix here is to stop using sweetalert
declare global {
const _swal: any;
const sweetAlert: any;
}
export default _swal;
export as namespace swal;
Lo resolvió cambiando esta línea:
import swal from 'sweetalert';
a:
const swal = require('sweetalert');
o (con la interfaz):
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');
Tengo el mismo problema en Angular 10. Sí, el problema parece estar en sweetalert.d.ts
ya que, según mi IDE, hay un error, así que no creo que sea una mala solución comentarlo:
@drmencos ¿ require
no me funciona en Angular 10.
En el archivo: node_modules> sweetalert> typings> sweetalert.d.ts
Comentario: const swal: SweetAlert;
importar tragar, {SweetAlert} de "./core";
declare global {
// const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
exportar gol por defecto;
exportar como espacio de nombres tragar;
cambiar import 'sweetalert'
a require('sweetalert')
funcionó para mí.
Comentario más útil
Hola a todos,
Ahórrese el esfuerzo y use sweetalert 2 https://sweetalert2.github.io/