spring Angular 检测字段在对象中初始化时未定义

wyyhbhjk  于 2023-02-03  发布在  Spring
关注(0)|答案(1)|浏览(84)

当我试图获取对象"User"的属性时,它被检测为未定义,但当我创建整个对象的控制台日志时,该字段与数据一起出现。
控制台日志:

perfil.component.ts:42 undefined
perfil.component.ts:48 
{recordNumber: '00001A', name: 'Victor Manuel Arenas', dni: '75499109E', birthDate: '2000-12-04', phoneNumber: '678678678', …}
address
: 
"C\\Lorca 31"
birthDate
: 
"2000-12-04"
dni
: 
"75499109E"
email
: 
"victormanuel.arenas@univ.com"
name
: 
"Victor Manuel Arenas"
parking
: 
null
password
: 
"$2a$10$auBcwSsgKBWMTUUFToVb1OklqDP4O0LvW9F7vqWjnVZAGFzOVtfg6"
phoneNumber
: 
"678678678"
profilepic
: 
"profilepic_00001A.jpg"
recordNumber
: 
"00001A"
role
: 
"ALUMNO"

方法:

checking(){
    if(this.sesion.user != null){
      console.log(this.sesion.user.phonenumber);
      if(this.sesion.user.phonenumber === undefined) {
        alert("myProperty value is the special value `undefined`");
      }
    }
    
    console.log(this.sesion.user);
  }

对象的接口:

import { Parking } from "./Parking";

export interface User {
    recordNumber: string;
    name: string;
    dni: string;
    birthdate: Date;
    phonenumber: string|null;
    email: string;
    address: string;
    profilepic: string|null;
    role: string;
    password: string;
    parking: Parking;
}

我一直在尝试用其他方式和其他页面获取字段。这不是后端的问题,因为数据到达前端。这不是对象的问题,因为字段有数据。

ioekq8ef

ioekq8ef1#

输入错误(phonenumber vs phoneNumber)。在接口和checking方法中引用了phonenumber。但日志显示属性类型为phoneNumber(注意大写的N)。

const a = {foo: 'bar'};
console.log(a.foo) // => 'bar'
console.log(a.FOO) // => undefined

属性访问区分大小写。

相关问题