タイプ 'オブジェクト' にプロパティが存在しません。
以下のような設定をしているのですが、for...of
を使ってループ処理をすると、Property "country" doesn't exist on type "object" というエラーが発生します。これは、配列内の各オブジェクトをループして、オブジェクトのプロパティ値を比較する正しい方法ですか?
let countryProviders: object[];
export function GetAllProviders() {
allProviders = [
{ region: "r 1", country: "US", locale: "en-us", company: "co 1" },
{ region: "r 2", country: "China", locale: "zh-cn", company: "co 2" },
{ region: "r 4", country: "Korea", locale: "ko-kr", company: "co 4" },
{ region: "r 5", country: "Japan", locale: "ja-jp", company: "co 5" }
]
for (let providers of allProviders) {
if (providers.country === "US") { // error here
countryProviders.push(providers);
}
}
}
27
1
おそらく
allProviders
がobject[]
としてタイプされているのではないでしょうか。そして、プロパティcountry
はobject
には存在しません。型付けを気にしないのであれば、allProviders
とcountryProviders
の両方をArray
として宣言することができます。静的な型チェックが必要な場合。構造体のインターフェイスを作成し、それを使用することができます。