Расширение и преобразование интерфейса Typescript - PullRequest
1 голос
/ 16 июня 2020

Я пытался реализовать расширенный интерфейс с полями, которые вставляются после получения данных из API.

Мои интерфейсы:

Blocks.d.ts
export interface InputsEntity {
    features: Features;
    commitment: string;
}

SingleBlock.d.ts
export interface Inputs extends InputsEntity {
    group: string;
    size: number;
    color: string;
}

На моей стороне реакции:

const inputsData: Inputs[] = inputs.map((i:InputsEntity) => {
        i.size = inputs.length;
        i.color = '#F97C0C';
        return i as Inputs
    });

Появляется ошибка: Property 'size' does not exist on type 'InputsEntity'.

Я предполагаю, что не сопоставил это должным образом, любая помощь или направление будут оценены!

1 Ответ

2 голосов
/ 16 июня 2020
const inputsData: Inputs[] = inputs.map((i:InputsEntity) => {
        const temp: Inputs = {
          size: inputs.length,
          color: '#F97C0C',
          ...i
        };
        return temp;
    });

тип InputsEntity несовместим с Inputs, потому что у него отсутствуют свойства size, group и color. но вы можете вернуть новое значение типа Inputs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...