Ditingkatkan ke Angular 7 dengan TypeScript 3.2.4 dan sekarang saya mendapatkan yang berikut ini setiap kali saya mengkompilasi:
import swal from 'sweetalert';
swal({ ... });
KESALAHAN di node_modules/sweetalert/typings/sweetalert.d.ts(4,9): error TS2403: Deklarasi variabel berikutnya harus memiliki tipe yang sama. Variabel 'swal' harus bertipe 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")', tetapi di sini memiliki tipe 'SweetAlert'.
Jika saya mengedit node_modules/sweetalert/typings/sweetalert.d.ts
dari...
import swal, { SweetAlert } from "./core";
declare global {
const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
export default swal;
export as namespace swal;
... ke ...
import swal, { SweetAlert } from "./core";
export default swal;
export as namespace swal;
... mulai bekerja.
Ada ide?
Masalah yang sama, situasi yang sama.
Namun, saya perhatikan bahwa hanya mengomentari baris export as namespace swal;
juga memungkinkannya untuk dikompilasi. Saya telah melihat changelogs TypeScript untuk petunjuk apa pun ...
Masalah yang sama, situasi yang sama.
Namun, saya perhatikan bahwa hanya mengomentari baris
export as namespace swal;
juga memungkinkannya untuk dikompilasi. Saya telah melihat changelogs TypeScript untuk petunjuk apa pun ...
masalah yang sama
Saya menggunakan solusi ini
tapi saya tidak berpikir solusi ini benar.
Masalah yang sama.
Juga masalah yang sama. CI membangun gagal karena ini.
Saya memiliki masalah yang sama ketika berjalan di bawah OpenBSD. Ya saya tahu bukan OS utama, tetapi versi TypeScript yang tersedia membuat apa pun dengan sweetalert tidak dapat digunakan :(
Saya memiliki masalah yang sama ketika berjalan di bawah OpenBSD. Ya saya tahu bukan OS utama, tetapi versi TypeScript yang tersedia membuat apa pun dengan sweetalert tidak dapat digunakan :(
@t4t5 Bisakah Anda melihat masalah ini?
Juga mengalami ini dengan Angular 7
Adakah ide tentang solusi selain mengedit file definisi secara manual? Menjadi sedikit merepotkan mengingat untuk melakukan itu setelah setiap klon / npm menginstal.
@bogdan-calapoda Inilah yang telah saya lakukan sebagai solusi, sehingga pembangunan CI kami tidak gagal:
sweetalert.min.js
).sweetalert.min.js
di src/assets/scripts
di aplikasi Angular.src/assets/scripts/sweetalert.min.js
ke scripts
entri di angular.json
declare var swal: any;
atas deklarasi kelas.swal
, yaitu return swal({...})
npm uninstall sweetalert --save
Halo semua,
Hemat usaha Anda dan gunakan sweetalert 2 https://sweetalert2.github.io/
Setiap pembaruan dengan masalah ini?
Halo semua,
Hemat usaha Anda dan gunakan sweetalert 2 https://sweetalert2.github.io/
Ini memiliki dukungan untuk 3 tombol atau lebih?
@DVGalarza solusi ini tidak berhasil untuk saya. ReferenceError: "swal is not didefinisikan" adalah apa yang saya dapatkan.
@alvarofelipe12 Dalam file yang Anda coba gunakan 'swal', apakah Anda menambahkan declare var swal: any;
ke bagian atas file (di bawah impor)? Jika demikian, periksa juga apakah sweetalert.min.js
direferensikan dengan benar di bagian 'skrip' angular.json
.
Ditingkatkan ke Angular 7 dengan TypeScript 3.2.4 dan sekarang saya mendapatkan yang berikut ini setiap kali saya mengkompilasi:
import swal from 'sweetalert'; swal({ ... });
KESALAHAN di node_modules/sweetalert/typings/sweetalert.d.ts(4,9): error TS2403: Deklarasi variabel berikutnya harus memiliki tipe yang sama. Variabel 'swal' harus bertipe 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")', tetapi di sini memiliki tipe 'SweetAlert'.
Jika saya mengedit
node_modules/sweetalert/typings/sweetalert.d.ts
dari...import swal, { SweetAlert } from "./core"; declare global { const swal: SweetAlert; const sweetAlert: SweetAlert; } export default swal; export as namespace swal;
... ke ...
import swal, { SweetAlert } from "./core"; export default swal; export as namespace swal;
... mulai bekerja.
Ada ide?
alternatif saya adalah mengganti nama const swal menjadi const _swal
import swal, { SweetAlert } dari "./core";
nyatakan global {
const _swal: SweetAlert;
const sweetAlert: SweetAlert;
}
ekspor default swal;
ekspor sebagai namespace swal;
halo !, masalah yang sama
Saya memperbaikinya dengan mengganti tipe sweetalert. Saya menambahkan file di direktori src bernama 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;
Selesaikan dengan mengubah baris ini:
import swal from 'sweetalert';
ke:
const swal = require('sweetalert');
atau (dengan antarmuka):
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');
Saya mengalami masalah yang sama di Angular 10. Ya, masalahnya sepertinya ada di sweetalert.d.ts
sesuai dengan IDE saya, ada kesalahan, jadi saya pikir itu bukan solusi yang buruk untuk mengomentarinya:
@drmencos Apakah itu untuk Node.js? require
tidak berfungsi untuk saya di Angular 10.
Dalam file: node_modules> sweetalert> pengetikan> sweetalert.d.ts
Komentar: const swal: SweetAlert;
impor swal, {SweetAlert} dari "./core";
nyatakan global {
// const swal: SweetAlert;
const sweetAlert: SweetAlert;
}
ekspor default swal;
ekspor sebagai namespace swal;
mengubah import 'sweetalert'
menjadi require('sweetalert')
berhasil untuk saya.
Komentar yang paling membantu
Halo semua,
Hemat usaha Anda dan gunakan sweetalert 2 https://sweetalert2.github.io/