Properti tidak ada pada tipe 'object'

Saya memiliki pengaturan berikut dan ketika saya mengulang melalui menggunakan for...of dan mendapatkan kesalahan Property " country &" tidak ada pada tipe " object &". Apakah ini cara yang benar untuk mengulang setiap objek dalam array dan membandingkan nilai properti objek?

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);
      }
   }
}
Larutan

Anda mungkin memiliki allProviders yang diketik sebagai object[] juga. Dan properti country tidak ada pada object. Jika Anda tidak peduli dengan pengetikan, Anda dapat mendeklarasikan allProviders dan countryProviders sebagai Array:

let countryProviders: Array;
let allProviders: Array;

Jika Anda menginginkan pemeriksaan tipe statis. Anda dapat membuat antarmuka untuk struktur dan menggunakannya:

interface Provider {
    region: string,
    country: string,
    locale: string,
    company: string
}

let countryProviders: Array;
let allProviders: Array;
Komentar (5)