У меня есть следующая установка и когда я петлю через для...of
и получить ошибку Property "country"
не существует на типе "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);
}
}
}
Скорее всего, вы также напечатали все провайдеры
как объект[]``. И собственности
странына
объектене существует. Если вы не заботитесь о наборе, вы можете объявить и
всех Провайдеров, и
страны Провайдеровкак
Array
let countryProviders: Array<any>;
let allProviders: Array<any>;
Если вы хотите проверить статический тип. Вы можете создать интерфейс для структуры и использовать его:
interface Provider {
region: string,
country: string,
locale: string,
company: string
}
let countryProviders: Array<Provider>;
let allProviders: Array<Provider>;