2016-09-08 10 views
0

Mapクラスの機能を拡張したいと思います。Immutable.js型を拡張する

const someMap = Immutable.Map({ a: 1, b: 2 }); 
const {a, b} = someMap.batchGet('a,' 'b'); 

にはどうすれば正しくクラスをマップするために「batchGet」メソッドを追加することができます。例えば、私は、次の手順を実行したいですか?

答えて

2

残念ながら、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') 
+0

ありがとう。それが私の必要なものです –

関連する問題