【Angular】SCRIPT1046: strict モードでは、プロパティの複数定義は許可されません。【IE】

IE11だけがSCRIPT1046で動作しない

chrome、edgeなどは正常に動くがIEだけがエラーで起動出来ない状態になった。polyfills.tsではIE10,11でも動作するようにアンコメントとclasslist.jsをインストールしている

原因

stylesで一時的にデバックとして使用した行が悪さをしているみたい。

stylesプロパティまるごと削除でエラーが出なくなった。

憶測

SCRIPT1046: 厳格モードでは、プロパティの複数定義は許可されませんエラーが出たがソース上は問題なかったし、もしコーディングで問題があった場合、IDEで教えてくれるのでAngularコンパイル時にどうやってるのか考えてみた。

公式の注意事項が見つからず、おそらくとしか言いようが無いが、styleUrlsプロパティとstylesは同時に使用するべきではないのだろう。tsからjsに変換されるときにtemplateUrlはURL情報からCSS情報を受取りstylesプロパティになると考えれば、stylesプロパティが2つ宣言されてしまうため「同一プロパティが複数適宜」となる。(勘です。)

chromeやedgeでは問題なく動くため原因究明までに時間がかかってしまった。修正自体は元々不要な物だったので消すだけで済んだが、ゴミが悪さをする悪い例だわさ。

スポンサーリンク
レタリング(大)広告
レタリング(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レタリング(大)広告