Immutable.Map

Map是JavaScript对象结构的不可变版本。 由于JavaScript对象具有简洁的对象字面量语法,它通常用作键值存储,keystring类型。 此模式紧跟map数据结构。 让我们重温前面的例子,但改用Immutable.Map

  1. import * as Immutable from 'immutable';
  2. let movie1 = Immutable.Map<string, any>({
  3. name: 'Star Wars',
  4. episode: 7
  5. });
  6. let movie2 = movie1;
  7. movie2 = movie2.set('episode', 8);
  8. console.log(movie1.get('episode')); // writes 7
  9. console.log(movie2.get('episode')); // writes 8

不是直接将对象字面量绑定到movie1,而是将其作为参数传递给Immutable.Map。 这改变了我们如何与movie1的属性交互。

要获取属性的值,我们调用get方法,传递我们想要的属性名称,就像我们如何使用对象的字符串索引器。

要设置属性的值,我们调用set方法,传递属性名和新值。 注意,它不会改变现有的Map对象 - 它返回一个带有更新属性的新对象,因此我们必须将movie2变量重新绑定到新对象。