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」メソッドを追加することができます。例えば、私は、次の手順を実行したいですか?
残念ながら、Core Immutableクラスはデフォルトでは拡張できません。これは、アンチパターンを阻止し、パフォーマンスを改善する設計上の決定でした。詳しくはthis discussionを参照してください。
つまり、extendable-immutableを使用してImmutableを拡張することができます。これは上記githubの問題に対応して作成されたphilplです。あなたのために、それは次のようになります:
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')
ありがとう。それが私の必要なものです –