-
- immutable を JavaScript で実現してくれる
- 不変性(= immutable = 元となっているオブジェクトに変更を加えない、加えられない状態)を保ってくれるクラスの集まり
immutable.js の Record オブジェクト
-
- 与えられた callback 関数を配列の順番通りに、各要素に対して一度ずつ呼び出し、その結果から新しい配列を生成
forEach()
vsmap()
immutable.js 3.8
と 4.0
では Record オブジェクト で map()メソッド を使う方法が異なる
3.8
:Recordオブジェクト.map()
4.0
:Recordオブジェクト.toSeq().toMap().map()
サンプル
// 3.8 の場合 import { Record } from 'immutable'; // 「限定されたプロパティ」の定義 const fields = { field_1: '', field_2: '', }; export class Test extends Record(fields) { } // immutable.jp の Record クラスのインスタンス = Record オブジェクト const obj = new Test(), // .map obj.map((...arg) => { console.log(arg[1]); //field_1, field_2 });
// 4.0 の場合 import { Record } from 'immutable'; // 「限定されたプロパティ」の定義 const fields = { field_1: '', field_2: '', }; export class Test extends Record(fields) { } // immutable.jp の Record クラスのインスタンス = Record オブジェクト const obj = new Test(), // .map obj.toSeq().toMap().map((...arg) => { console.log(arg[1]); //field_1, field_2 });
(使い方が違うのはわかったが) 3.8 と 4.0 でどのような違いがあるのか?
下記のような違いがあるようですが、このあたりがまだ把握できていません
- Record が型安全になった