ESLintでObject.assignを一部だけゴルァできるようになってた
※ "using an object literal as the first argument" でした。literal じゃなかったら怒られないので完全に抑止はできません。
- prefer-object-spread - Rules - ESLint - Pluggable JavaScript linter
- スプレッド構文と Object.assign の違い - valid,invalid
"rules": {
"prefer-object-spread": "error"
}
Use an object spread instead of `Object.assign` eg: `{ ...foo }` prefer-object-spread
た、たしかにー。
Object.assign はすでに標準の規格に入っているが、だからこそなのか Babel と ESLint の両方がスルーしてしまい、ちょっとお茶目なブラウザが踏み抜いて死ぬ、ということが起きていてつらかった。
また babel-polyfill で動くらしいことは知っていたのだが、
- babel-polyfillとbabel-runtimeの使い分けに迷ったので調べた - Qiita
- Babelの設定を見直すための逆引きガイド
- Babel7.x時代のpolyfillの設定方法とuseBuiltInsの仕組み
babel-polyfill 自体がそこそこ大きいのと、2回読み込むと死ぬらしいということで、asset 管理がしっかりしていないところに導入するには結構リスキーな仕様で困っていた。
2019年初頭現在、Object.assign は弾けるようになっていたということだな。知らなんだ。