不可变的 JS 列表大小

Immutable JS List size

我不明白不可变 JS 列表的大小将如何增长。

如官方文档中的示例 https://facebook.github.io/immutable-js/docs/#/List/push ,在不可变的 js 列表中推送内容会自动变大。

在我的代码中:

const list: List = List();
list.push(object);
console.log(list, list.size);

我在控制台中的输出是:

(1) object
length: 1
___proto___: Array(0)

undefined

这与方面输出确实不同。 没有大小,如果我在代码中使用长度,Typescript 会告诉我列表中不存在 "length"。 我将 React 与 Typescript 和 Immutable.JS

一起使用

有人知道会发生什么吗?

不变性意味着操作不会更改原始对象,而是创建一个新对象。

在您的情况下,push 方法将 return 一个包含所有旧元素和您刚刚添加的新元素的 new 列表。

您的代码应如下所示。

const list: List = List();
const newList = list.push(object);
console.log(list, list.size);
console.log(newlist, newlist.size);

这应该为 list 变量打印大小为 0,为 newList 变量打印大小为 1。