Angular - Как устранить ошибку TS2339: свойство 'dob_year' не существует для типа - PullRequest
0 голосов
/ 05 октября 2019

В Angular-7 я пытаюсь использовать опцию select внутри машинописи Angular для создания даты рождения с разделением дня, месяца и года.

client.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 из:

public form = {...}

Затем я получил эту ошибку:

ОШИБКА вsrc / app / pages / client-quotes-landing / client-quotes-landing.component.ts (94,47): ошибка TS2339: Свойство 'dob_year' не существует для типа 'ClientQuotesLandingComponent'. src / app / pages / client-quotes-landing / client-quotes-landing.component.ts (94,62): ошибка TS2339: свойство 'dob_month' не существует для типа 'ClientQuotesLandingComponent'.

Произошла ошибка:

  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)
  }

Как мне устранить эту ошибку?

1 Ответ

0 голосов
/ 05 октября 2019

Кажется, проблема связана с объявленной вами функцией

Попробуйте удалить пробел между ключевым словом 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)
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...