Параметр приписывается с помощью метода установки добавляет атрибут вместо его установки - PullRequest
0 голосов
/ 29 апреля 2019

Если я попытаюсь установить атрибут в классе TypeScript с помощью установщика, он добавит атрибут вместо изменения существующего. Класс выглядит как

export class User extends Model
{
  private username: string;
  private firstname: string;
  private lastname: string;
  // ...

  public get Username(): string
  {
    return this.username;
  }

  public set Username(value: string)
  {
    this.username = value;
  }
}

Если я установлю имя с помощью user.Firstname = 'Tobi';, то при помощи console.log(user) я могу видеть, что объект теперь содержит атрибут Firstname с заглавной первой буквой.

Угловая версия: 7.3.8
TypeScript: 3.2.4
NodeJS: 11.11.0
Браузеры: Firefox 66.0.3 и Chrome 73.0.3683.103
ОС: macOS 10.14.4 (18E226)

// Creating a new object
this.userService.create(this.user).subscribe(
   (user: User) =>
      {
         console.log(user);
         this.user = user;
      }
);
// Trying to update the object
tstUpdateUser()
{
    this.user.Firstname = 'Tobi2';
    console.log(this.user);
    this.userService.update(this.user, this.user.Id).subscribe((user: User) =>
        {
            this.user = user;
            console.log('update', this.user);
        });
}
//Output of Dev console in Firefox
{…}
​
Firstname: "Tobi2"
firstname: "Tobi"
id: 37
​...

Если я правильно понял методы получения и установки TypeScript, свойство .Firstname должно устанавливать частный атрибут firstname вместо добавления атрибута Firstname.

...