スポンサーリンク
Typescript をコンパイルしたら Property does not exist on type というエラーになるんですけど
宣言していないプロパティを参照するときは注意が必要だよ
1 2 3 |
this.someService.getSomething().subscribe((uiouio) => { var hogehoge = uiouio.hogehoge; }); |
というようなコードをコンパイルしたとき
Property ‘hogehoge’ does not exist on type ‘Uiouio’.
と怒られました。
Uiouio のプロパティに hogehoge は定義していませんので、当然と言えば当然なのですが。
でも、とある事情により Uiouio に hogehoge という名前の値を入れてあって、それを使いたいのです。
Uiouio の宣言に hogehoge プロパティを追加すれば良いのですが、UiouioはOpenAPI の自動生成で作成された型なので変更できません。
この困った状況は以下のように書くことで解決できました。
1 2 3 |
this.someService.getSomething().subscribe((uiouio: any) => { var hogehoge = uiouio.hogehoge; }); |
引数の uiouio に型宣言 : any を追加しました。
any はコンパイル時の型宣言の確認はされないようです。
スポンサーリンク
スポンサーリンク