ionic自身のアップデート
GameBookプロジェクト、思ったよりは順調です。
仕様は全く変わってしまいましたが、拡張性、自由度共に優れた形になると期待しています。
さて表題。
ionicによるアプリ作成を初めて1年が過ぎたところですが、おっかなビックリ触っていたのがウソのです。
しかし、新しくionicプロジェクトを作成すると思わぬところでエラーが出ました。
今までは、JSONオブジェクトを定義して好きなようにキーを追加できたのですが、これが許容されなくなりました。
要は、プロジェクトで作成されるファイルの内容が変わり、コンパイルのターゲットがより新しいjavascriptのバージョンに代わったという事のようです。*脚注1
これ自体は、設定ファイルをいじれば行けそうな気もしますが、今回は新規で作るので、新しいやり方の方が問題が起きにくいと判断しました。
問題の起きたコード例と修正したコード例は以下のようになります。
新しいionicプロジェクトでエラーとなるコード
------------------------------------------
let objTemp = {};
objTemp["testkey"] = "testvalue";
------------------------------------------
修正してエラーが出なくなったコード
------------------------------------------
let objTemp = {} as any;
objTemp["testkey"] = "testvalue";
------------------------------------------
なお下のコードのように"as any"をつけない場合は、定義の時点で"testkey"と言うプロパティの定義もしてやれば問題ありません。
という訳でionic自身のアップデートが、良くも悪くも、Web環境の変化に伴い自動的に行われる(場合によっては余計な事をと思う可能性もありますね)事を実感した次第であります。
脚注1:
ionicプロジェクトは、TypeScriptという言語で書き、これをjavascriptに変換する事で、思わぬエラーが起きないようなHTML+javascriptのアプリを作ります。Webを見るだけなら意識する事は無いですが、javascriptにはバージョンがあり、細かい挙動や約束事が変わったりします。