تمت الترقية إلى Angular 7 w / TypeScript 3.2.4 وأنا الآن أحصل على ما يلي عندما أقوم بالتجميع:
import swal from 'sweetalert';
swal({ ... });
خطأ في node_modules / sweetalert / typings / sweetalert.d.ts (4،9): خطأ TS2403: يجب أن يكون لإعلانات المتغيرات اللاحقة نفس النوع. يجب أن يكون المتغير "swal" من النوع "typeof import (" C: / Projects / me / browser / node_modules / sweetalert / typings / sweetalert ") '، ولكن يوجد هنا نوع" SweetAlert ".
إذا قمت بتحرير node_modules/sweetalert/typings/sweetalert.d.ts
من ...
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;
... يبدأ العمل.
أيه أفكار؟
نفس القضية ، نفس الوضع.
ومع ذلك ، لاحظت أن مجرد التعليق على السطر export as namespace swal;
يتيح أيضًا تجميعه. لقد كنت أبحث في تغييرات TypeScript بحثًا عن أي أدلة ...
نفس القضية ، نفس الوضع.
ومع ذلك ، لاحظت أن مجرد التعليق على السطر
export as namespace swal;
يتيح أيضًا تجميعه. لقد كنت أبحث في تغييرات TypeScript بحثًا عن أي أدلة ...
المشكلة نفسها
لقد استخدمت هذا الحل
لكنني لا أعتقد أن هذا الحل صحيح.
المشكلة نفسها.
نفس المشكلة أيضا. CI يبني الفشل بسبب هذا.
لدي نفس هذه المشكلة عند التشغيل تحت OpenBSD. نعم ، لا أعرف نظام تشغيل سائدًا ، لكن إصدار TypeScript المتاح يجعل أي شيء به sweetalert غير قابل للاستخدام :(
لدي نفس هذه المشكلة عند التشغيل تحت OpenBSD. نعم ، لا أعرف نظام تشغيل سائدًا ، لكن إصدار TypeScript المتاح يجعل أي شيء به sweetalert غير قابل للاستخدام :(
@ t4t5 هل يمكنك إلقاء نظرة على هذه المسألة؟
تواجه هذا أيضًا مع Angular 7
هل لديك أي فكرة عن حل بديل بخلاف تحرير ملف التعريف يدويًا؟ لقد أصبح من الصعب تذكر القيام بذلك بعد كل تثبيت استنساخ / npm.
@ bogdan-calapod هذا ما كنت أفعله كحل بديل حتى لا يفشل تصميم CI الخاص بنا:
sweetalert.min.js
).sweetalert.min.js
في src/assets/scripts
في تطبيق Angular.src/assets/scripts/sweetalert.min.js
إلى scripts
في angular.json
declare var swal: any;
أعلى إعلان الفصل.swal
، أي return swal({...})
npm uninstall sweetalert --save
أهلا بكم،
وفر على نفسك الجهد واستخدم سويتاليرت 2 https://sweetalert2.github.io/
أي تحديثات مع هذه القضية؟
أهلا بكم،
وفر على نفسك الجهد واستخدم سويتاليرت 2 https://sweetalert2.github.io/
هذا لديه دعم لأزرار 3 أو أكثر؟
DVGalarza لم
@ alvarofelipe12 في الملف الذي تحاول استخدام "swal" فيه ، هل أضفت declare var swal: any;
إلى أعلى الملف (أدناه الواردات)؟ إذا كان الأمر كذلك ، فتحقق أيضًا من الإشارة إلى sweetalert.min.js
بشكل صحيح في قسم "البرامج النصية" في angular.json
.
تمت الترقية إلى Angular 7 w / TypeScript 3.2.4 وأنا الآن أحصل على ما يلي عندما أقوم بالتجميع:
import swal from 'sweetalert'; swal({ ... });
خطأ في node_modules / sweetalert / typings / sweetalert.d.ts (4،9): خطأ TS2403: يجب أن يكون لإعلانات المتغيرات اللاحقة نفس النوع. يجب أن يكون المتغير "swal" من النوع "typeof import (" C: / Projects / me / browser / node_modules / sweetalert / typings / sweetalert ") '، ولكن يوجد هنا نوع" SweetAlert ".
إذا قمت بتحرير
node_modules/sweetalert/typings/sweetalert.d.ts
من ...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;
... يبدأ العمل.
أيه أفكار؟
كان بديلي هو إعادة تسمية const swal إلى const _swal
استيراد swal ، {SweetAlert} من "./core" ؛
تعلن عالمية {
const _swal: SweetAlert ؛
const sweetAlert: SweetAlert ؛
}
تصدير swal الافتراضي ؛
تصدير باسم swal ؛
مرحبًا ، نفس المشكلة
أصلحت هذا من خلال تجاوز أنواع الحلويات. أضفت ملفًا في src dir باسم 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;
تم حلها عن طريق تغيير هذا الخط:
import swal from 'sweetalert';
ل:
const swal = require('sweetalert');
أو (مع الواجهة):
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');
أواجه نفس المشكلة في Angular 10. نعم ، يبدو أن المشكلة في sweetalert.d.ts
وفقًا لـ IDE الخاص بي ، هناك خطأ ، لذلك لا أعتقد أنه حل سيئ للتعليق عليه:
drmencos هل هذا لـ Node.js؟ require
لا يعمل معي في Angular 10.
في الملف: node_modules> sweetalert> typings> sweetalert.d.ts
التعليق: const swal: SweetAlert؛
استيراد swal ، {SweetAlert} من "./core" ؛
تعلن عالمية {
// const swal: SweetAlert ؛
const sweetAlert: SweetAlert ؛
}
تصدير swal الافتراضي ؛
تصدير باسم swal ؛
لقد نجح تغيير import 'sweetalert'
إلى require('sweetalert')
بالنسبة لي.
التعليق الأكثر فائدة
أهلا بكم،
وفر على نفسك الجهد واستخدم سويتاليرت 2 https://sweetalert2.github.io/