PhpStormを使ってAngularアプリを開発しています。 "未解決変数" 時差
params.myid
コード行は次のとおりです。
this.route.params.subscribe((params: Params) => {
const avalancheid = params.myid;
});
タイプを変更するとエラーはありません。 "どれか" の代わりに "Params"
this.route.params.subscribe((params: any) => {
const avalancheid = params.myid;
});
角度バージョン:4.2.4、PhpStormバージョン:2017.2.4
回答:
回答№1は2それはあなたの Params
クラスはキーを含んでいません myid
、角括弧を使用して params["myid"]
あなたは値を得ることができるはずです。 ドキュメント.
それがクラッシュする理由は、あなたがTypeScriptコンパイラに "やあ、私は期待しているから" Params
"という名前のプロパティを取得するように指示します myid
元の Params
クラスには含まれていないため、エラーです。
回答№2の場合は1
ここには2つの問題があります。
- あなたはインポートしていません
Params
から@angular/router
:
このような:
import {Params} from "@angular/router";
あなたにはこれが必要です Params
これは、以下のように定義されているからです。 [key: string]: any
これにより、ドット記法を使用してオブジェクトをナビゲートすることができます。
- 間違った文字コードのバージョン:
しかし、ドット・ナショナルの使用を「許可」することは、 TypeScript
。もう一つの問題は、古いバージョンのTypeScriptを使用していることです。少なくともバージョン以上に更新してみてください 2.4.x
この機能を使用できるように、そしてあなたがその機能を利用している間、最新の角度バージョンにも更新できるかどうかを確認してください。価値がある。
更新したくない場合は、そうすることを強くお勧めしますが、他の記法を使用してプロパティにアクセスすることができます:
this.route.params.subscribe((params: Params) => {
const avalancheid = params["myid"];
});