Fiz upgrade para Angular 7 com TypeScript 3.2.4 e agora recebo o seguinte sempre que compilar:
import swal from 'sweetalert';
swal({ ... });
ERRO em node_modules / sweetalert / typings / sweetalert.d.ts (4,9): erro TS2403: Declarações de variáveis subsequentes devem ter o mesmo tipo. A variável 'swal' deve ser do tipo 'typeof import ("C: / Projects / me / browser / node_modules / sweetalert / typings / sweetalert")', mas aqui tem o tipo 'SweetAlert'.
Se eu editar 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;
... para ...
import swal, { SweetAlert } from "./core";
export default swal;
export as namespace swal;
... começa a funcionar.
Alguma ideia?
Mesmo problema, mesma situação.
No entanto, percebi que apenas comentar a linha export as namespace swal;
também permite a compilação. Estive olhando os changelogs do TypeScript em busca de alguma pista ...
Mesmo problema, mesma situação.
No entanto, percebi que apenas comentar a linha
export as namespace swal;
também permite a compilação. Estive olhando os changelogs do TypeScript em busca de alguma pista ...
o mesmo problema
Eu usei esta solução
mas não acho que essa solução seja correta.
O mesmo problema.
Também o mesmo problema. As compilações de CI falham por causa disso.
Acho que esta linha tem que ser removida:
Eu tenho o mesmo problema ao executar no OpenBSD. Sim, eu não conheço um sistema operacional convencional, mas a versão do TypeScript disponível torna qualquer coisa com sweetalert inutilizável :(
Eu tenho o mesmo problema ao executar no OpenBSD. Sim, eu não conheço um sistema operacional convencional, mas a versão do TypeScript disponível torna qualquer coisa com sweetalert inutilizável :(
@ t4t5 Você pode dar uma olhada neste assunto?
Também experimentando isso com Angular 7
Alguma idéia de uma solução alternativa além de editar o arquivo de definição manualmente? Está se tornando um pouco incômodo lembrar de fazer isso após cada instalação de clone / npm.
@ bogdan-calapod Aqui está o que tenho feito como uma solução alternativa, para que nossa construção de CI não falhe:
sweetalert.min.js
).sweetalert.min.js
em src/assets/scripts
no aplicativo Angular.src/assets/scripts/sweetalert.min.js
a scripts
entrada em angular.json
declare var swal: any;
acima da declaração da classe.swal
, ou seja, return swal({...})
npm uninstall sweetalert --save
Olá a todos,
Poupe esforços e use sweetalert 2 https://sweetalert2.github.io/
Alguma atualização com este problema?
Olá a todos,
Poupe esforços e use sweetalert 2 https://sweetalert2.github.io/
Isso tem suporte para 3 botões ou mais?
@DVGalarza esta solução alternativa não funcionou para mim. ReferenceError: "swal is not defined" é o que estou recebendo.
@ alvarofelipe12 No arquivo que você está tentando usar 'swal', você adicionou declare var swal: any;
ao topo do arquivo (abaixo das importações)? Em caso afirmativo, verifique também se sweetalert.min.js
está referenciado corretamente na seção 'scripts' de angular.json
.
Fiz upgrade para Angular 7 com TypeScript 3.2.4 e agora recebo o seguinte sempre que compilar:
import swal from 'sweetalert'; swal({ ... });
ERRO em node_modules / sweetalert / typings / sweetalert.d.ts (4,9): erro TS2403: Declarações de variáveis subsequentes devem ter o mesmo tipo. A variável 'swal' deve ser do tipo 'typeof import ("C: / Projects / me / browser / node_modules / sweetalert / typings / sweetalert")', mas aqui tem o tipo 'SweetAlert'.
Se eu editar
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;
... para ...
import swal, { SweetAlert } from "./core"; export default swal; export as namespace swal;
... começa a funcionar.
Alguma ideia?
minha alternativa era renomear const swal para const _swal
import swal, {SweetAlert} de "./core";
declare global {
const _swal: SweetAlert;
const sweetAlert: SweetAlert;
}
exportação padrão swal;
exportar como namespace swal;
olá! mesmo problema
Corrigi isso substituindo os tipos sweetalert. Eu adicionei um arquivo no diretório src chamado 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;
Resolvido alterando esta linha:
import swal from 'sweetalert';
para:
const swal = require('sweetalert');
ou (com a interface):
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');
Estou tendo o mesmo problema no Angular 10. Sim, o problema parece estar em sweetalert.d.ts
, de acordo com meu IDE, há um erro, então não acho que seja uma má solução comentá-lo:
@drmencos Isso é para Node.js? require
não funciona para mim no Angular 10.
No arquivo: node_modules> sweetalert> typings> sweetalert.d.ts
Comentário: const swal: SweetAlert;
import swal, {SweetAlert} de "./core";
declare global {
// const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
exportação padrão swal;
exportar como namespace swal;
alterar import 'sweetalert'
para require('sweetalert')
funcionou para mim.
Comentários muito úteis
Olá a todos,
Poupe esforços e use sweetalert 2 https://sweetalert2.github.io/