typescript - 为什么我会收到一些 Ionic 组件引用一个值但被用作类型的错误?

标签 typescript ionic-framework compiler-errors

在几个组件中运行我的 Ionic 应用程序时出现运行时错误,这些组件引用了一个值,但正被用作一个类型。

我试过:
* 重新运行 $ sudo npm i
* 检查旧版本的工作应用程序以查看这些组件是否在 app.component.ts 中

代码

export class MyApp {
  @ViewChild(Nav) nav: Nav;

  // make JobListingsPage the root (or first) page
  rootPage = JobListingsPage;
  pages: Array<{title: string, component: any}>;

  constructor(
    public platform: Platform,
    public menu: MenuController,
    public statusBar: StatusBar,
    public splashScreen: SplashScreen
  ) {

出现以下错误:

Typescript Error
'StatusBar' refers to a value, but is being used as a type here.
src/app/app.component.ts
public menu: MenuController,
public statusBar: StatusBar,
public splashScreen: SplashScreen  

Typescript Error
'SplashScreen' refers to a value, but is being used as a type here.
src/app/app.component.ts
  public statusBar: StatusBar,
  public splashScreen: SplashScreen
) {  

Typescript Error
Type 'StatusBarOriginal' is not assignable to type 'Provider'. Type 'StatusBarOriginal' is missing the following properties from type 'ClassProvider': provide, useClass
src/app/app.module.ts
providers: [
  StatusBar,
  SplashScreen,  

Typescript Error
Type 'SplashScreenOriginal' is not assignable to type 'Provider'. Type 'SplashScreenOriginal' is missing the following properties from type 'ClassProvider': provide, useClass
src/app/app.module.ts
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler}

最佳答案

首先你必须像这样安装你的组件:

ionic cordova plugin add cordova-plugin-statusbar
npm install @ionic-native/status-bar

完成后,您必须将它们导入到您的 app.component.ts 中,只需在文件顶部添加以下内容:

import { StatusBar } from '@ionic-native/status-bar/ngx';

从 Ionic v4 开始,您必须在导入组件时添加/ngx,在以前的版本中,您只能使用“@ionic-native/status-bar”

关于typescript - 为什么我会收到一些 Ionic 组件引用一个值但被用作类型的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55997831/

相关文章:

javascript - 动态访问对象属性的 Typescript 类型推断

使用代码生成的 graphql 代码时出现 Typescript 错误 "Property ' 0' does not exist on type X"

TypeScript - 'unique' 关键字的作用是什么?

php - 每次使用 ionic、php 和 my sql 在日历中的特定日期创建事件时,创建一个要在准确时间调用的函数

haskell - 为什么Haskell类型系统无法捕获这一点?

typescript - 使用 typescript 时如何添加自定义扩展

typescript - 为什么来自 tensorflowjs 的 model.predict() 总是返回相同的预测?

angular - 类型 'Observable<>' 缺少类型 'Observable<>' : [see below] (error TS2322) 的以下属性

带有继承的 Typescript 编译器错误泛型类型

有人可以详细解释 C 中的链接概念吗