Что означает синтаксис селектора адаптера ngrx? - PullRequest
1 голос
/ 23 июня 2019

Я нашел следующий пример адаптера ngrx:

export const {
  selectAll: selectAllItems
} = adapter.getSelectors<State>(state => state.items);

Но я не понимаю, что здесь назначено. Особенно обозначение типа: const {sth: foo} = bar; Будет ли кто-нибудь так приятно, посоветуйте мне, пожалуйста:)

1 Ответ

3 голосов
/ 23 июня 2019

Это синтаксис для уничтожения объектов в Typescript и присвоения новым именам переменных:

Ваш код приблизительно переводится в классический javascript как ( анализируется с помощью онлайн-анализатора ):

const selectAllItems = adapter.getSelectors(state => state.items).selectAll;

Другой пример, скопированный из TS Docs:

// structure
const obj = {"some property": "some value"};

// destructure
const {"some property": someProperty} = obj;
console.log(someProperty === "some value"); // true

Это похоже на Уничтожение объектов в Javascript вроде:

const {x, y} = {x: 10, y: 20};
console.log(x, y); // 10 20

Или свойство можно распаковать из объекта и присвоить переменной с именем, отличным от свойства объекта. (Из документов MDN)

var o = {p: 42, q: true};
var {p: foo, q: bar} = o;

console.log(foo); // 42 
console.log(bar); // true

Здесь, например, var {p: foo} = o берет из объекта o свойство с именем p и присваивает его локальной переменной с именем foo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...