Невозможно вызвать выражение, тип которого не имеет подписи вызова.Тип 'typeof import ("sweetalert2") "не имеет совместимых сигнатур вызовов - PullRequest
1 голос
/ 22 мая 2019

Я получаю сообщение "Невозможно вызвать выражение, тип которого не имеет подписи вызова. Тип" typeof import ("sweetalert2") 'не имеет совместимых подписей вызовов ".эта ошибка при использовании SWAL в угловых.

Мой package-cli.json выглядит как

    "ng2-sweetalert2": {
    "version": "0.0.8",
    "resolved": "https://registry.npmjs.org/ng2-sweetalert2/-/ng2-sweetalert2-0.0.8.tgz",
    "integrity": "sha1-+VkDV2dqeLIMf3eFTLVt/cJda0Q=",
    "requires": {
        "lodash.assign": "^4.0.8",
        "sweetalert2": "^5.2.0"
    },
    "dependencies": {
        "es6-promise": {
            "version": "4.2.6",
            "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
            "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q=="
        },
        "sweetalert2": {
            "version": "5.3.8",
            "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-5.3.8.tgz",
            "integrity": "sha1-YALBhFPQYMQLnMVL+DoBDHHjlik=",
            "requires": {
                "es6-promise": "^4.2.6"
            }
        }
    }
}

"sweetalert2": {
      "version": "8.9.0",
      "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-8.9.0.tgz",
      "integrity": "sha512-gI+wL44QRbfd6FvRVB8KKLQPhD/8jP3XUNrvYGcSlU7IA09dQtQw3rrLCbM3c+HY0L3O8VTz1Gvu29n8ryIgag=="
}

, и у меня есть следующие вещи в зависимостях package.json

"dependencies":{
"ng2-sweetalert2": "0.0.8",
"sweetalert2": "^8.9.0",}

В компоненте мой код похож на ниже

import * as swal from 'sweetalert2';

        swal({
          text: 'Login Successful!',
          timer: 1000,
          onOpen: () => {
            swal.showLoading()
          }
        })then((result) => {
          if (result.dismiss === swal.DismissReason.timer) {
              // calling few required functions here
          }
        })

В компоненте я получаю вышеупомянутую ошибку.Искал много, но не мог понять проблему.пожалуйста, помогите мне.

1 Ответ

1 голос
/ 22 мая 2019

Вы установили две зависимости через package.json :

  • sweetalert2, который является чистой (!) Библиотекой javascript.Он не имеет ничего общего с Angular.
  • ng2-sweetalert2, который является сервисом Angular, который превращает собственную библиотеку sweetalert2 в сервис Angular.Согласно странице GitHub , это устарело.

Я рекомендую удалить sweetalert2 и из вашего package.json и добавить ngx-sweetalert2 :

npm install --save sweetalert2 @sweetalert2/ngx-sweetalert2

Setмодуль, описанный в ngx-sweetalert2 , оттуда у вас есть несколько способов заставить его работать, через директиву или компонент.

...