Ionic3,Typescript - 忽略Typescript错误“属性”在类型''的值不存在

我已经通过this post(和this one以及)找到我的问题的解决方案。Ionic3,Typescript - 忽略Typescript错误“属性”在类型''的值不存在

我想忽略这些错误:

Property 'payload' does not exist on type 'Matatu'.

Property 'key' does not exist on type 'Matatu'.

我试图声明变量“覆盖”的类型系统,但并未奏效。

这里是我的.ts代码,是我到目前为止已经尝试:

import { Component } from '@angular/core'; 

import { IonicPage, NavController, NavParams, ActionSheetController } from 'ionic-angular';

import { AngularFireList, AngularFireDatabase } from 'angularfire2/database';

import { Matatu } from '../../models/matatu/matatu.interface';

/* imports */

declare var payload;

declare var key;

@IonicPage()

@Component({

selector: 'page-owner-dash',

templateUrl: 'owner-dash.html',

})

export class OwnerDashPage {

matatuListRef$: AngularFireList<Matatu>;

matatuListAsync$: any;

constructor(public navCtrl: NavController, public navParams: NavParams, private database: AngularFireDatabase, public actionShtCrtl: ActionSheetController) {

this.matatuListRef$ = this.database.list('matatu-list');

this.matatuListAsync$ = this.matatuListRef$.snapshotChanges();

}

ionViewDidLoad() {

//stuff

}

selectMatatu(matatu: Matatu){

this.actionShtCrtl.create({

title: `${matatu.payload.val().matNumberPlate}`,

buttons: [

{

text: 'Edit',

handler:() => {

//stuff

}

},

{

text: 'Delete',

role: 'destructive',

handler:() => {

this.matatuListRef$.remove(matatu.key);

}

},

{

text: 'Cancel',

role: 'cancel',

handler:() => {

//do something

}

}

]

}).present();

}

}

这里的Matatu结构:

export interface Matatu { 

$key?: string;

matNumberPlate: string;

matSacco: string;

matDriver: string;

matAccessCode: string;

matStatus: string;

matTracker: string;

matLocation: string;

}

我怎么投的财产,以任何类型?

回答:

如何将属性转换为任何类型?

如果你只是想投,为了避免打字稿错误,你可以做这样的事情:

// ... 

title: `${(<any>matatu).payload.val().matNumberPlate}`,

// ...

而且

// ... 

this.matatuListRef$.remove((<any>matatu).key);

// ...

这样matatu将被转换为any并且错误应该消失。


我建议你,如果你可以修改Matatu接口,将有添加这两个属性,而不是:

export interface Matatu { 

$key?: string;

matNumberPlate: string;

matSacco: string;

matDriver: string;

matAccessCode: string;

matStatus: string;

matTracker: string;

matLocation: string;

// New properties are optional

payload?: any;

key?: any;

}

这样,你不需要施放matatu财产因为​​和key都是Matatu类型定义的一部分(并且都是any类型)。

以上是 Ionic3,Typescript - 忽略Typescript错误“属性”在类型''的值不存在 的全部内容, 来源链接: utcz.com/qa/260248.html

回到顶部