Immutable.js 记录中 toJSON() 和 toObject() 的区别
Immutable.js difference between toJSON() and toObject() on Record
随着 Immutable v4 的发布,发生了一些 api 变化。
toJS(): any
变成了 toJS(): {[key: string]: unknown}
据我了解,它已被 toJSON()
取代,但与 toObject()
有什么区别? documentation 在那个话题上不是很清楚。
toJSON(): TProps
Shallowly converts this Record to equivalent native JavaScript Object.
toObject(): TProps
Shallowly converts this Record to equivalent JavaScript Object.
名称可按字面意思取:
toObject
创建 javascript 普通 对象 ,而 toJSON
根据集合类型选择数据类型。
对于 keyed 集合(Record、Map、OrderedMap),toJSON 和 toObject 做同样的事情。
但是,对于列表类型(Lists、Set、OrderedSet),存在差异:
toJSON
returns 一个数组,而 toObject
生成一个对象,其中键是索引:
List(['a','b']).toJSON() // ['a', 'b']
List(['a','b']).toObject() // { "1": "a", "2": "b" }
随着 Immutable v4 的发布,发生了一些 api 变化。
toJS(): any
变成了 toJS(): {[key: string]: unknown}
据我了解,它已被 toJSON()
取代,但与 toObject()
有什么区别? documentation 在那个话题上不是很清楚。
toJSON(): TProps
Shallowly converts this Record to equivalent native JavaScript Object.
toObject(): TProps
Shallowly converts this Record to equivalent JavaScript Object.
名称可按字面意思取:
toObject
创建 javascript 普通 对象 ,而 toJSON
根据集合类型选择数据类型。
对于 keyed 集合(Record、Map、OrderedMap),toJSON 和 toObject 做同样的事情。
但是,对于列表类型(Lists、Set、OrderedSet),存在差异:
toJSON
returns 一个数组,而 toObject
生成一个对象,其中键是索引:
List(['a','b']).toJSON() // ['a', 'b']
List(['a','b']).toObject() // { "1": "a", "2": "b" }