我想扩展Map类的功能。例如,我想执行以下操作:
const someMap = Immutable.Map({ a: 1, b: 2 });
const {a, b} = someMap.batchGet('a,' 'b');如何正确地将'batchGet‘方法添加到映射类?
发布于 2017-02-10 07:01:35
不幸的是,核心不可变类在默认情况下是不可扩展的。这是一个旨在阻止反模式和提高性能的设计决策,有关详细信息,请参阅this discussion。
也就是说,您可以使用extendable-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')https://stackoverflow.com/questions/39395014
复制相似问题