扩展 Immutable.js 类型
Extend Immutable.js types
我想扩展地图 class 的功能。例如,我想执行以下操作:
const someMap = Immutable.Map({ a: 1, b: 2 });
const {a, b} = someMap.batchGet('a,' 'b');
如何正确地将 'batchGet' 方法添加到 Map class?
不幸的是,核心 Immutable 类 默认情况下不可扩展。这是一个旨在阻止 anti-patterns 和提高性能的设计决定,有关详细信息,请参阅 this discussion。
也就是说,您可以使用 extendable-immutable 扩展 Immutable,它是 philpl 为响应上述 github 问题而创建的。对你来说,这看起来像:
import { Map } from 'extendable-immutable'
class MyMap extends Map {
batchGet (...keys) {
let result = {}
keys.forEach(key => { result[key] = this.get(key) })
return result
}
}
const myMap = MyMap({ a: 1, b: 2 })
const {a, b} = myMap.batchGet('a', 'b')
我想扩展地图 class 的功能。例如,我想执行以下操作:
const someMap = Immutable.Map({ a: 1, b: 2 });
const {a, b} = someMap.batchGet('a,' 'b');
如何正确地将 'batchGet' 方法添加到 Map class?
不幸的是,核心 Immutable 类 默认情况下不可扩展。这是一个旨在阻止 anti-patterns 和提高性能的设计决定,有关详细信息,请参阅 this discussion。
也就是说,您可以使用 extendable-immutable 扩展 Immutable,它是 philpl 为响应上述 github 问题而创建的。对你来说,这看起来像:
import { Map } from 'extendable-immutable'
class MyMap extends Map {
batchGet (...keys) {
let result = {}
keys.forEach(key => { result[key] = this.get(key) })
return result
}
}
const myMap = MyMap({ a: 1, b: 2 })
const {a, b} = myMap.batchGet('a', 'b')