0
我想扩展Map类的功能。例如,我想这样做以下:扩展Immutable.js类型
const someMap = Immutable.Map({ a: 1, b: 2 });
const {a, b} = someMap.batchGet('a,' 'b');
我怎样才能正确地添加“batchGet”的方法来映射类?
我想扩展Map类的功能。例如,我想这样做以下:扩展Immutable.js类型
const someMap = Immutable.Map({ a: 1, b: 2 });
const {a, b} = someMap.batchGet('a,' 'b');
我怎样才能正确地添加“batchGet”的方法来映射类?
不幸的是,核心不可变类在默认情况下是不可扩展的。这是一个阻止反模式和提高性能的设计决策,详情请参阅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')
谢谢。那是我需要的 –