Угловая деструктуризация машинописи не работает должным образом

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)

Другие вопросы по тегам