Как определить и разобраться с интерфейсом? - PullRequest
0 голосов
/ 19 июня 2019

У меня есть интерфейс для деталей города следующим образом:

export interface CityDetail {
    [index: number]: {
        id?: number,
        name: string,
        latitude?: string,
        longitude?: string,
        current_temperature?: string,
        current_humidity?: string,
        temp_max?: string,
        temp_min?: string,
        current_wind?: string,
        current_wind_pressure?: string,
        current_weather_condition?: string
    };
};

Этот интерфейс я хочу определить как

 const countryClimate: CityDetail = {
                id: items['id'],
                name: items['name'],
                current_temperature: items['main']['temp'],
            };

Но я получаю ошибку

Type '{ id: any; name: any; current_temperature: any; }' is not assignable to type 'CityDetail'.
  Object literal may only specify known properties, and 'id' does not exist in type 'CityDetail'.ts

Кто-нибудь может сказать мне, какую ошибку я совершил?

1 Ответ

1 голос
/ 19 июня 2019

Я думаю, что ваш предметы объект подобен этому

const items: Item = {
    id: any;
    name: any;
    current_temperature: any;
}

Вы должны изменить тип объекта предмета или сделать это:

 const countryClimate: CityDetail = {
     id: items['id'] as number,
     name: items['name'] as string,
     current_temperature: items['main']['temp'] as string,
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...