Mise à niveau vers Angular 7 avec TypeScript 3.2.4 et j'obtiens maintenant ce qui suit chaque fois que je compile :
import swal from 'sweetalert';
swal({ ... });
ERREUR dans node_modules/sweetalert/typings/sweetalert.d.ts(4,9) : erreur TS2403 : les déclarations de variables suivantes doivent avoir le même type. La variable 'swal' doit être de type 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")', mais ici a le type 'SweetAlert'.
Si je modifie node_modules/sweetalert/typings/sweetalert.d.ts
partir de...
import swal, { SweetAlert } from "./core";
declare global {
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
export default swal;
export as namespace swal;
... à ...
import swal, { SweetAlert } from "./core";
export default swal;
export as namespace swal;
... ça commence à fonctionner.
Des idées?
Même problème, même situation.
Cependant, j'ai remarqué que le simple fait de commenter la ligne export as namespace swal;
permet également de la compiler. J'ai regardé les changelogs de TypeScript pour des indices...
Même problème, même situation.
Cependant, j'ai remarqué que le simple fait de commenter la ligne
export as namespace swal;
permet également de la compiler. J'ai regardé les changelogs de TypeScript pour des indices...
même problème
j'ai utilisé cette solution
mais je ne pense pas que cette solution soit correcte.
Même problème.
Même problème également. Les builds CI échouent à cause de cela.
J'ai le même problème lors de l'exécution sous OpenBSD. Oui, je ne connais pas un système d'exploitation grand public, mais la version de TypeScript disponible rend tout avec sweetalert inutilisable :(
J'ai le même problème lors de l'exécution sous OpenBSD. Oui, je ne connais pas un système d'exploitation grand public, mais la version de TypeScript disponible rend tout avec sweetalert inutilisable :(
@t4t5 Pouvez-vous jeter un œil à ce problème ?
Vivre cela aussi avec Angular 7
Une idée sur une solution de contournement en dehors de l'édition manuelle du fichier de définition ? Cela devient un peu fastidieux de ne pas oublier de le faire après chaque installation de clone / npm.
@bogdan-calapod Voici ce que j'ai fait comme solution de contournement, afin que notre build CI n'échoue pas :
sweetalert.min.js
).sweetalert.min.js
dans src/assets/scripts
dans l'application Angular.src/assets/scripts/sweetalert.min.js
à scripts
entrée dans angular.json
declare var swal: any;
au-dessus de la déclaration de classe.swal
, c'est- return swal({...})
dire npm uninstall sweetalert --save
Salut tout le monde,
Épargnez-vous l'effort et utilisez sweetalert 2 https://sweetalert2.github.io/
Des mises à jour avec ce problème?
Salut tout le monde,
Épargnez-vous l'effort et utilisez sweetalert 2 https://sweetalert2.github.io/
Cela prend en charge 3 boutons ou plus ?
@DVGalarza cette solution de contournement n'a pas fonctionné pour moi. ReferenceError: "swal n'est pas défini" est ce que j'obtiens.
@alvarofelipe12 Dans le fichier dans declare var swal: any;
en haut du fichier (sous les importations) ? Si tel est le cas, vérifiez également que sweetalert.min.js
est référencé correctement dans la section 'scripts' de angular.json
.
Mise à niveau vers Angular 7 avec TypeScript 3.2.4 et j'obtiens maintenant ce qui suit chaque fois que je compile :
import swal from 'sweetalert'; swal({ ... });
ERREUR dans node_modules/sweetalert/typings/sweetalert.d.ts(4,9) : erreur TS2403 : les déclarations de variables suivantes doivent avoir le même type. La variable 'swal' doit être de type 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")', mais ici a le type 'SweetAlert'.
Si je modifie
node_modules/sweetalert/typings/sweetalert.d.ts
partir de...import swal, { SweetAlert } from "./core"; declare global { const swal: SweetAlert; const sweetAlert: SweetAlert; } export default swal; export as namespace swal;
... à ...
import swal, { SweetAlert } from "./core"; export default swal; export as namespace swal;
... ça commence à fonctionner.
Des idées?
mon alternative était de renommer const swal en const _swal
importer swal, { SweetAlert } à partir de "./core" ;
déclarer global {
const _swal : SweetAlert ;
const sweetAlert: SweetAlert;
}
exporter le swal par défaut ;
exporter en tant que swal d'espace de noms ;
bonjour !, meme probleme
J'ai corrigé ce problème en remplaçant les types sweetalert. J'ai ajouté un fichier dans le répertoire src nommé 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;
Résolu en changeant cette ligne:
import swal from 'sweetalert';
à:
const swal = require('sweetalert');
ou (avec l'interface) :
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');
J'ai le même problème dans Angular 10. Oui, le problème semble être dans sweetalert.d.ts
car selon mon IDE, il y a une erreur, donc je ne pense pas que ce soit une mauvaise solution pour le commenter :
@drmencos Est-ce pour Node.js ? require
ne fonctionne pas pour moi dans Angular 10.
Dans le fichier : node_modules> sweetalert> typings> sweetalert.d.ts
Commentaire : const swal : SweetAlert ;
importer swal, {SweetAlert} depuis "./core" ;
déclarer global {
// const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
exporter le swal par défaut ;
exporter en tant que swal d'espace de noms ;
changer import 'sweetalert'
en require('sweetalert')
fonctionné pour moi.
Commentaire le plus utile
Salut tout le monde,
Épargnez-vous l'effort et utilisez sweetalert 2 https://sweetalert2.github.io/