Html typescript˜;属性不存在于类型void˜;

Html typescript˜;属性不存在于类型void˜;,html,angular,typescript,date,void,Html,Angular,Typescript,Date,Void,我碰巧有一些代码是用angular bootstrap生成的,它是一个数据选择器,在事件方寄存器中(单击new并生成一个新事件),我希望用户选择一个日期并保存它,下面是日期选择器的代码: <p>Selecione a data</p> <ngb-datepicker #dp [startDate]="modelAtual" [(ngModel)]="modelAtual" (navigate)="date = $even

我碰巧有一些代码是用angular bootstrap生成的,它是一个数据选择器,在事件方寄存器中(单击new并生成一个新事件),我希望用户选择一个日期并保存它,下面是日期选择器的代码:

  <p>Selecione a data</p>

                    <ngb-datepicker #dp [startDate]="modelAtual" [(ngModel)]="modelAtual" (navigate)="date = $event.next"></ngb-datepicker>

                            <pre>Month: {{ date.month }}.{{ date.year }}</pre>
                            <pre>Model: {{ model | json }}</pre>
然后我有一段代码,每当用户想要编辑这个寄存器(你可以这么做)时都会加载,为了准确显示他之前选择的日期,我尝试将变量modelAtual分配给变量datahoje,由于某种原因,它会返回标题中提到的错误

this.selecionado['dataInicial']
有人能告诉我那是什么原因吗;DR(简短答复):

您的方法
salvarImagem
不返回任何内容(显式
salvarImagem():void
),查看代码时,您应该返回一个具有属性
datahoje

详细回答:

为了避免错误,您需要返回值

或者调用该方法并从已编辑的对象中获取值(作为副作用)

关于Typescripts的类型:

另外,您的IDE“知道”返回类型-您可以通过ctrl(对于MacOS为cmd)+将鼠标悬停在方法上来检查它

if (this.chave !== undefined) {
  this.service.get(this.chave).valueChanges().subscribe(obj => {
    this.selecionado = obj;
    this.logo = this.selecionado["arquivo"];
    //this.modelAtual = { year: 2011, month: 7, day:23};
    this.modelAtual = this.salvarImagem().datahoje;

  })
}
salvarImagem(): { datahoje: Date } {
  ...
  return { datahoje };
}
this.selecionado['dataInicial']