Угловая деструктуризация машинописи не работает должным образом
Desctruturing не работает при использовании этого. синтаксис
{this.firstName, this.lastName} = this.data;
this.data имеет значение
{firstName: 'joe', lastName: 'smith'}
но после присвоения значения this.firstName и this.lastName все еще имеет значение null
4 ответа
Попробуйте следующее, чтобы добиться деструктуризации без объявления:
({firstName: this.firstName, lastName: this.lastName} = this.data);
От MDN:
В круглых скобках ( ...) вокруг оператора присваивания требуется синтаксис при использовании литерала деструктурирования объекта без объявления.
Компилятор TypeScript также будет жаловаться без скобок для переноса.
Вот пример в действии.
Надеюсь, это поможет!
Вам нужно использовать объект.
this.firstname= this.data.firstname;
this.lastName=this.data.lastname;
{firstName : this.firstName ,lastName : this.firstName } = this.data
Имя ключа должно быть похоже на объект данных для Desctruturing
({firstName:this.firstName, lastName:this.lastName} = this.data);
[ОБНОВИТЬ]
Вам нужен синтаксис, который не только выполняет деструктуризацию, но и присваивает значение:
{propertyNameFromObject: variableValueShouldBeAssignedTo} = someObject
Теперь вы просто расширяете это, чтобы не использовать variableValueShouldBeAssignedTo
но вы назначаете его свойству объекта: this.firstName
,
ref: http://exploringjs.com/es6/ch_destructuring.html (см. раздел 10.8)