【问题标题】:Property does not exist on type issue类型问题上不存在属性
【发布时间】:2018-04-24 07:07:30
【问题描述】:

我在我的第一个 Ionic 项目中使用以下代码:

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { PapersProvider } from '../../providers/papers/papers';

/**
 * Generated class for the LoadPaperPage page.
 *
 * See https://ionicframework.com/docs/components/#navigation for more info on
 * Ionic pages and navigation.
 */

@IonicPage()
@Component({
  selector: 'page-load-paper',
  templateUrl: 'load-paper.html',
})
export class LoadPaperPage {

  public paper = {};
    public questions = {};

  constructor(public navCtrl: NavController, public navParams: NavParams, public papersData:PapersProvider) {
    // let paperid = navParams.data.paper;
    this.paper      = this.navParams.get('paper');
    this.questions  = this.navParams.get('questions');
    this.questions  = this.questions.questions;
  }

  ionViewDidLoad() {
  }
}

测试我的 load-paper 页面时,代码运行良好。但是,当我必须重新提供项目并且它从头开始(启动屏幕等)时,我收到以下错误:

打字稿错误 类型“{}”src/pages/load-paper/load-paper.ts 上不存在属性“问题”

this.questions  = this.navParams.get('questions');
this.questions  = this.questions.questions;

我分配给 this.questions 的数据在加载初始屏幕时不存在,所以我知道它因此失败,但我尝试过测试:

if(this.questions.questions !== 'undefined')

和:

if(this.questions.questions)

不成功。

【问题讨论】:

  • 为您的 questions 对象创建一个接口,该接口将持有 questions 属性,然后让您的 questions 对象实现该接口。
  • 嗨西斯科。没有必要在你的每一个问题中添加“请帮助”材料——读者知道你需要帮助,他们不想看到你恳求。如果您的问题可以保持简洁,则可以节省编辑工作量,而且asking confident questions 的出现通常也可能会为您带来更好的接待。

标签: typescript ionic3


【解决方案1】:

如果你只是想让警告消失,你应该可以this.questions = this.questions['questions'];

但是,我强烈建议您创建一个适当的界面,以确保您正确处理数据。

【讨论】:

    猜你喜欢
    • 2019-03-23
    • 2020-09-15
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 2017-02-09
    • 2019-12-23
    相关资源
    最近更新 更多