打字稿:错误打字稿错误:无法设置未定义的属性“ [变量]”

时间:2020-02-20 05:23:34

标签: arrays angular typescript error-handling

我有一个LoginData对象的数组,其中一个属性是email。以下函数采用字符串参数,并应检查是否已经存在具有匹配电子邮件地址的LoginData对象。这是代码:

import { Injectable } from '@angular/core';
import { LOGINDATA } from '../mock-users';

@Injectable({
  providedIn: 'root'
})

export class CheckLoginDataService {
  emailString: string = "";
  loginData = LOGINDATA;


  checkLoginData(str: string){
    let emailExists: boolean = false;

    this.loginData.forEach( function(LoginData){
      this.emailString = LoginData.email;
      console.log(this.emailString);

      if (str === this.emailString){
        emailExists = true;
      }
    })

    return emailExists;
  }
}

运行代码时出现错误:

“错误TypeError:无法设置未定义的属性'emailString'”。

我查看了讨论此问题的其他stackoverflow线程,他们建议初始化"emailString"(在我的情况下)。我想我已经在一开始就这样做了-我在做什么错了?

1 个答案:

答案 0 :(得分:0)

更改

this.loginData.forEach( function(LoginData){

this.loginData.forEach((LoginData) => {

在类中使用箭头函数会将函数内的this绑定到类实例本身。