Sweetalert: خطأ في الطباعة TS2403: يجب أن يكون لإعلانات المتغيرات اللاحقة نفس النوع.

تم إنشاؤها على ٢٥ يناير ٢٠١٩  ·  22تعليقات  ·  مصدر: t4t5/sweetalert

تمت الترقية إلى 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;

... يبدأ العمل.

أيه أفكار؟

التعليق الأكثر فائدة

أهلا بكم،

وفر على نفسك الجهد واستخدم سويتاليرت 2 https://sweetalert2.github.io/

ال 22 كومينتر

نفس القضية ، نفس الوضع.

ومع ذلك ، لاحظت أن مجرد التعليق على السطر export as namespace swal; يتيح أيضًا تجميعه. لقد كنت أبحث في تغييرات TypeScript بحثًا عن أي أدلة ...

نفس القضية ، نفس الوضع.

ومع ذلك ، لاحظت أن مجرد التعليق على السطر export as namespace swal; يتيح أيضًا تجميعه. لقد كنت أبحث في تغييرات TypeScript بحثًا عن أي أدلة ...

المشكلة نفسها
لقد استخدمت هذا الحل
لكنني لا أعتقد أن هذا الحل صحيح.

المشكلة نفسها.

نفس المشكلة أيضا. CI يبني الفشل بسبب هذا.

لدي نفس هذه المشكلة عند التشغيل تحت OpenBSD. نعم ، لا أعرف نظام تشغيل سائدًا ، لكن إصدار TypeScript المتاح يجعل أي شيء به sweetalert غير قابل للاستخدام :(

لدي نفس هذه المشكلة عند التشغيل تحت OpenBSD. نعم ، لا أعرف نظام تشغيل سائدًا ، لكن إصدار TypeScript المتاح يجعل أي شيء به sweetalert غير قابل للاستخدام :(

@ t4t5 هل يمكنك إلقاء نظرة على هذه المسألة؟

تواجه هذا أيضًا مع Angular 7

هل لديك أي فكرة عن حل بديل بخلاف تحرير ملف التعريف يدويًا؟ لقد أصبح من الصعب تذكر القيام بذلك بعد كل تثبيت استنساخ / npm.

@ bogdan-calapod هذا ما كنت أفعله كحل بديل حتى لا يفشل تصميم CI الخاص بنا:

  1. قم بتنزيل ملف البرنامج النصي المصغر Sweetalert هنا (انقر بزر الماوس الأيمن واحفظ الرابط كـ sweetalert.min.js ).
  2. ضع sweetalert.min.js في src/assets/scripts في تطبيق Angular.
  3. أضف إدخال src/assets/scripts/sweetalert.min.js إلى scripts في angular.json
  4. في أي مكونات / خدمات تريد استخدامها Sweetalert ، أضف declare var swal: any; أعلى إعلان الفصل.
  5. يمكنك استخدام Sweetalert في أي مكان في الملف باستخدام المتغير العام swal ، أي return swal({...})
  6. يمكنك الآن إزالة حزمة Sweetalert NPM نظرًا لأنك تستخدم ملف البرنامج النصي المحلي: 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 الخاص بي ، هناك خطأ ، لذلك لا أعتقد أنه حل سيئ للتعليق عليه:

image

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') بالنسبة لي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

xgqfrms-GitHub picture xgqfrms-GitHub  ·  4تعليقات

mouro001 picture mouro001  ·  3تعليقات

Lusitaniae picture Lusitaniae  ·  4تعليقات

girishbr picture girishbr  ·  5تعليقات

Untit1ed picture Untit1ed  ·  5تعليقات