TypeScript 中的类型不存在属性
Posted
技术标签:
【中文标题】TypeScript 中的类型不存在属性【英文标题】:Property does not exist on type in TypeScript 【发布时间】:2019-02-13 23:50:46 【问题描述】:我正在研究 ionic 4 crud,在我的 create.page.ts
中我正在验证表单,但是我试图使用异步方法并等待使用 this.loading.ctrl
,但我收到了在标题。
此外,当我尝试处理它的返回时,this.router.navigateByUrl('');
上也会出现错误,如果不清楚这里到底发生了什么,这是我的create.page.ts
:
import Component, OnInit from '@angular/core';
import FormGroup, FormBuilder, Validators from '@angular/forms';
import LoadingController, AlertController from '@ionic/angular';
import FirestoreService from '../../services/data/firestore.service';
@Component(
selector: 'app-create',
templateUrl: './create.page.html',
styleUrls: ['./create.page.scss'],
)
export class CreatePage implements OnInit
public createConsultaForm: FormGroup;
constructor(
public firestoreService: FirestoreService, formBuilder: FormBuilder,
loadingCtrl: LoadingController, alertCtrl: AlertController
)
this.createConsultaForm = formBuilder.group(
id: ['', Validators.required],
unidade: ['', Validators.required],
medNome: ['', Validators.required],
especialidade: ['', Validators.required],
endereco: ['', Validators.required],
data: ['', Validators.required],
hora: ['', Validators.required],
);
ngOnInit()
async createConsulta()
const loading = await this.loadingCtrl.create();
const id = this.createConsultaForm.value.id;
const unidade = this.createConsultaForm.value.unidade;
const medNome = this.createConsultaForm.value.medNome;
const especialidade = this.createConsultaForm.value.especialidade;
const endereco = this.createConsultaForm.value.endereco;
const data = this.createConsultaForm.value.data;
const hora = this.createConsultaForm.value.hora;
this.firestoreService
.createConsulta(unidade, especialidade, medNome, endereco, data, hora)
.then(
() =>
loading.dismiss().then(() =>
this.router.navigateByUrl('');
);
,
error =>
console.error(error);
);
return await loading.present();
在这一行:
const loading = await this.loadingCtrl.create();
我明白了:
类型“CreatePage”上不存在属性“loadingCtrl”
在这一行:
this.router.navigateByUrl('');
我明白了
“CreatePage”类型上不存在属性“路由器”
【问题讨论】:
你能给出完整的错误吗?哪个属性不存在?错误在哪一行? 我已编辑我的帖子以更明显地显示错误 有人刚刚发布了解决方案,但他们删除了他们的答案哈哈 @AJT_82,有,因为当我通过 CLI 生成项目时,我将它用作角度类型 【参考方案1】:我没有看到你导入的任何地方Router
导入Router
并在构造函数中实例化
constructor(router: Router) this.router.navigateByUrl(...);
【讨论】:
没错!我忘了将它添加到我的构造函数中,还声明了加载控制器,谢谢! 我的立场是正确的,还没有使用 v4,所以这是我的借口:P 太棒了!我也对 AJT 的评论感到困惑。如果有帮助,请点赞以上是关于TypeScript 中的类型不存在属性的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript 中的 EventTarget 类型不存在属性“值”
如何修复 typeScript 中的“对象”类型上不存在“属性”拨号
类型 IInstance 上不存在 typescript 文件属性 selectpicker 中的错误
Discord.js 指南:Typescript 中的“Client<boolean>”类型上不存在属性“commands”
vue中的Typescript - 类型'Vue |上不存在属性'validate'元素| Vue [] |元件[]'。