首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使导出了离子3,TypeScript也找不到名称'ClassName‘

即使导出了离子3,TypeScript也找不到名称'ClassName‘
EN

Stack Overflow用户
提问于 2019-01-26 18:07:28
回答 2查看 984关注 0票数 6

我不得不在我的Ionic 3应用程序中使用某些插件,但它给出了找不到名称错误。我导入了

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

在构造函数(public androidPermissions: AndroidPermissions)中声明时,它会给出一个错误([ts] Cannot find name 'AndroidPermissions'.)

在app.module.ts中声明相同的插件和在Provider中声明时,它给出了错误

代码语言:javascript
复制
[ts]
Type 'AndroidPermissionsOriginal' is not assignable to type 'Provider'.
Type 'AndroidPermissionsOriginal' is missing the following properties from type 'FactoryProvider': provide, useFactory [2322]

看过论坛后,我用ngx导入了这个插件。

代码语言:javascript
复制
import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'

错误已解决,但在调用它时会抛出错误

代码语言:javascript
复制
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)

在使用Network pluginSMS plugin时也会出现类似的错误。

我还尝试将目标更改为es6和jib,以便在tsconfig.json中使用es2016,但什么都不起作用。下面是我的tsconfig.json

代码语言:javascript
复制
{
  "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
  }
}
EN

回答 2

Stack Overflow用户

发布于 2019-02-05 13:53:24

如果您使用的是ionic版本3(不是最新版本),请参阅下面提到的文档https://ionicframework.com/docs/v3/native/android-permissions/

首先删除

离子cordova插件删除cordova- plugin -android-permissions

使用以下命令重新添加

$ ionic cordova插件添加cordova- plugin -android-permissions

$ npm安装--保存@ionic-native/android-permissions@4

票数 1
EN

Stack Overflow用户

发布于 2019-02-06 19:52:41

尝试以下命令- remove 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54377372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档