【Type Script】Spread構文が使えない!?!?


こういう

      notification: {
        title,
        body,
        ...payload,
      }

tscすると

notification: __assign({ title: title,
                body: body }, payload),

Oops!

tsconfigを編集するとええで

おそらくtsconfigのcompilerOptionsがes5になっている

{
...
  "compilerOptions": {
    "target": "es5",
  }
...
}

Array以外のSpreadはes5では対応してない、既知のバグらしい。
https://github.com/Microsoft/TypeScript/issues/8856

これをes6にすれば一旦解決する。ただし、es6にtargetを変更して影響があるかはそれぞれの環境によると思うので、注意してほしい。

-    "target": "es5",
+    "target": "es6",

そしてtscすると

notification: Object.assign({ title,
                body }, payload),

Object.assignになっていますね!