angular - Angular - 如何解决错误 TS2339:类型上不存在属性“dob_year”
问题描述
使用 Angular-7,我正在尝试使用 Angular 组件打字稿中的选择选项来生成出生日期,其中日期、月份和年份是分开的。
客户端.component.ts
import { Component, OnInit, ElementRef, NgZone, ViewChild } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { ApiService } from '../../shared/services/api.service';
import { TokenService } from '../../shared/services/token.service';
import { Router } from '@angular/router';
const getMonth = (idx) => {
var objDate = new Date();
objDate.setDate(1);
objDate.setMonth(idx-1);
var locale = "en-us",
month = objDate.toLocaleString(locale, { month: "long" });
return month;
}
@Component({
selector: 'app-client-quotes-landing',
templateUrl: './client-quotes-landing.component.html',
styleUrls: ['./client-quotes-landing.component.scss']
})
export class ClientQuotesLandingComponent implements OnInit {
public title = 'Places';
public addrKeys: string[];
public addr: object;
months = Array(12).fill(0).map((i,idx) => getMonth(idx + 1));
public form = {
first_name : null,
last_name : null,
dob_day : null,
dob_month : null,
dob_year : null,
};
public error = {
'first_name' : null,
'last_name' : null,
'dob_day' : null,
'dob_month' : null,
'dob_year' : null,
};
public get days() {
const dayCount = this.getDaysInMonth(this.form.dob_year, this.form.dob_month);
return Array(dayCount).fill(0).map((i,idx) => idx +1)
}
public getDaysInMonth(year: number, month: number) {
return 32 - new Date(year, month - 1, 32).getDate();
}
constructor(
private api: ApiService,
private token: TokenService,
private router: Router,
private notify: SnotifyService,
private zone: NgZone,
) {
}
ngOnInit() {
}
}
我想从以下位置访问 dob_month 和 dob_year:
公开形式 = {...}
然后,我得到了这个错误:
src/app/pages/client-quotes-landing/client-quotes-landing.component.ts(94,47) 中的错误:错误 TS2339:“ClientQuotesLandingComponent”类型上不存在属性“dob_year”。src/app/pages/client-quotes-landing/client-quotes-landing.component.ts(94,62):错误 TS2339:“ClientQuotesLandingComponent”类型上不存在属性“dob_month”。
错误来自:
public get days() {
const dayCount = this.getDaysInMonth(this.form.dob_year, this.form.dob_month);
return Array(dayCount).fill(0).map((i,idx) => idx +1)
}
如何解决此错误?
解决方案
问题似乎来自您声明的函数
尝试删除函数的 get 和 days 关键字之间的空格
喜欢
public getdays() {
const dayCount = this.getDaysInMonth(this.form.dob_year, this.form.dob_month);
return Array(dayCount).fill(0).map((i,idx) => idx +1)
}
推荐阅读
- c++ - 如何在模板类函数中分配结构值?
- apache-spark - Spark SQL在拆分后无法识别空值
- java - 使用堆栈在Java中制作文件/目录树
- docker - docker-compose 并使用带有已安装卷的本地映像
- node.js - 如何从mongodb的多个集合中同时获取数据
- python-3.x - 远程调试时按 F5 在 VS Code 中启动 Docker 容器
- java - 推送通知在android studio中不起作用
- angularjs - 如何找出究竟是什么触发了AngularJS中的摘要循环
- mobx - Mobx 状态树入门第 2 部分
- c# - 使用 ImageResizer 调整图像流的大小