今まではmapやforEach関数に渡すコールバックの第一引数がT?
でしたが、v4ではT
になりました。
これによってstrictNullChecks時でも!
が不要になりました。
例:
//v3以前
x.map(x=>x!+1);
//v4
x.map(x=>x+1);
v3以前もxにundefinedやnullが渡されることはなかったのに型定義はT?
で気持ち悪かったので修正されてよかったです。
const MyRecord = Record({ x:1,y:2 });
const myRecord = new MyRecord({});
//v3以前は以下のコードのコンパイルが通る
//v4では型エラーになる
myRecord.get('a');
今までは型安全じゃなかったのでRecordを使うのは避けていたのですが、これによって安心して使えるようになりました。