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