TypeScript Не удается найти имя «ClassName», хотя экспортируется Ionic 3 - PullRequest
0 голосов
/ 26 января 2019

Мне нужно использовать некоторые плагины в моем приложении Ionic 3, но это выдает сообщение об ошибке «Не удается найти имя»Я импортировал

import { AndroidPermissions } from '@ionic-native/android-permissions';

и при объявлении в конструкторе (public androidPermissions: AndroidPermissions), выдает ошибку ([ts] Cannot find name 'AndroidPermissions'.).

При объявлении того же плагина в app.module.ts и объявив в провайдере, он выдал ошибку

[ts]
Type 'AndroidPermissionsOriginal' is not assignable to type 'Provider'.
Type 'AndroidPermissionsOriginal' is missing the following properties from type 'FactoryProvider': provide, useFactory [2322]

После прочтения форумов я импортировал плагин с помощью ngx.

import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'

Ошибка исправлена, но при вызове выдаетошибка

Uncaught (in promise): TypeError: Object(...) is not a function
TypeError: Object(...) is not a function
    at AndroidPermissions.requestPermissions (http://192.168.0.13:8100/build/vendor.js:69796:154)
    at http://192.168.0.13:8100/build/main.js:138:32
    at t.invoke (http://192.168.0.13:8100/build/polyfills.js:3:14976)
    at Object.onInvoke (http://192.168.0.13:8100/build/vendor.js:5134:33)
    at t.invoke (http://192.168.0.13:8100/build/polyfills.js:3:14916)
    at r.run (http://192.168.0.13:8100/build/polyfills.js:3:10143)
    at http://192.168.0.13:8100/build/polyfills.js:3:20242
    at t.invokeTask (http://192.168.0.13:8100/build/polyfills.js:3:15660)
    at Object.onInvokeTask (http://192.168.0.13:8100/build/vendor.js:5125:33)
    at t.invokeTask (http://192.168.0.13:8100/build/polyfills.js:3:15581)

Аналогичная ошибка произошла при использовании Сетевой плагин и Плагин SMS .

Также попытался изменить цель на es6 и Jib, чтобы иметьes2016 в tsconfig.json но замечание сработало.Ниже мой tsconfig.json

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "dom",
      "es2015"
    ],
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "target": "es5"
  },
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules",
    "src/**/*.spec.ts",
    "src/**/__tests__/*.ts"
  ],
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

попробуйте эти команды - удалить package-lock.json

ionic cordova platform remove android npm install ionic cordova platform add android@6.3.0 ionic cordova plugin add cordova-plugin-android-permissions npm install --save @ionic-native/android-permissions@4

0 голосов
/ 05 февраля 2019

Если вы используете ионную версию 3 (не самую последнюю), пожалуйста, обратитесь к документации ниже https://ionicframework.com/docs/v3/native/android-permissions/

сначала удалить
плагин ionic Cordova удалить Cordova-плагин-Android-разрешения

повторно добавить его с

$ ионный плагин Cordova добавить Cordova-плагин-Android-разрешения

$ npm install --save @ ionic-native / android-permissions @ 4

...