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')
謝謝。那是我需要的 –