/ / PhpStorm角度サブスクライブ - 未解決変数 - javascript、angularjs、angular、phpstorm

PhpStorm角度サブスクライブ - 未解決変数 - javascript、angularjs、angular、phpstorm

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つの問題があります。

  1. あなたはインポートしていません Params から @angular/router

このような:

import {Params} from "@angular/router";

あなたにはこれが必要です Params これは、以下のように定義されているからです。 [key: string]: anyこれにより、ドット記法を使用してオブジェクトをナビゲートすることができます。

  1. 間違った文字コードのバージョン:

しかし、ドット・ナショナルの使用を「許可」することは、 TypeScript。もう一つの問題は、古いバージョンのTypeScriptを使用していることです。少なくともバージョン以上に更新してみてください 2.4.xこの機能を使用できるように、そしてあなたがその機能を利用している間、最新の角度バージョンにも更新できるかどうかを確認してください。価値がある。

更新したくない場合は、そうすることを強くお勧めしますが、他の記法を使用してプロパティにアクセスすることができます:

this.route.params.subscribe((params: Params) => {
const avalancheid = params["myid"];
});