2019-02-16

ブラウザ対象でユーザーを縛れない場合はもうしばらくはObject.assignを使わない

具体的には IE と Android のため。

ではどうするのがよいか

  1. まずESLintで弾く
  2. 代替コードにする

根拠

  • Babel は Object.assign をトランスパイルしない
    • しかし古めのブラウザでは動かずエラーで死ぬ
  • babel-polyfill という手もあるが、asset bundler が適切にセットされていないと polyfill 二重読み込みで死ぬ可能性が残る
    • あとサイズがでかい

ESLint が面倒見てくれない時は気をつけるしかなかったが今は大丈夫。

Node.js ネイティブならバージョンに従ってください。

cf.

別解

Babel などのトランスパイル環境が整っているのなら babel-plugin-transform-object-assign を常に入れておく。

@babel/plugin-transform-object-assign · Babel

これが入っていると static な Object.assign() を spread operator に変換してくれるので、結果的に IE にも対応できるようになる。ただし、完璧ではない。

About

例によって個人のなんちゃらです