Kgtkr's Blog

immutable.js v4でTypeScriptの型定義が改善された

2017/12/02
typescript

strictNullChecks時の改善

今まではmapやforEach関数に渡すコールバックの第一引数がT?でしたが、v4ではTになりました。
これによってstrictNullChecks時でも!が不要になりました。
例:

//v3以前
x.map(x=>x!+1);

//v4
x.map(x=>x+1);

v3以前もxにundefinedやnullが渡されることはなかったのに型定義はT?で気持ち悪かったので修正されてよかったです。

Recordが型安全になった

const MyRecord = Record({ x:1,y:2 });
const myRecord = new MyRecord({});

//v3以前は以下のコードのコンパイルが通る
//v4では型エラーになる
myRecord.get('a');

今までは型安全じゃなかったのでRecordを使うのは避けていたのですが、これによって安心して使えるようになりました。