Sweetalert: Kesalahan pengetikan TS2403: Deklarasi variabel berikutnya harus memiliki tipe yang sama.

Dibuat pada 25 Jan 2019  ·  22Komentar  ·  Sumber: t4t5/sweetalert

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?

Komentar yang paling membantu

Halo semua,

Hemat usaha Anda dan gunakan sweetalert 2 https://sweetalert2.github.io/

Semua 22 komentar

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:

  1. Unduh file skrip yang diperkecil Sweetalert di sini (klik kanan dan Simpan tautan sebagai sweetalert.min.js ).
  2. Tempatkan sweetalert.min.js di src/assets/scripts di aplikasi Angular.
  3. Tambahkan src/assets/scripts/sweetalert.min.js ke scripts entri di angular.json
  4. Di setiap komponen/layanan yang ingin Anda gunakan Sweetalert, tambahkan declare var swal: any; atas deklarasi kelas.
  5. Anda dapat menggunakan Sweetalert di mana saja dalam file menggunakan variabel global swal , yaitu return swal({...})
  6. Anda sekarang dapat menghapus paket Sweetalert NPM karena Anda menggunakan file skrip lokal: 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:

image

@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.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

blackrosezy picture blackrosezy  ·  6Komentar

AlexV525 picture AlexV525  ·  4Komentar

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4Komentar

fracz picture fracz  ·  4Komentar

girishbr picture girishbr  ·  5Komentar