Ошибка машинописи при представлении абстрактного класса или свойств? - PullRequest
2 голосов
/ 09 октября 2019

У меня есть DOCUMENTATION_CATALOG, который определен так:

export const DOCUMENTATION_CATALOG: {[key:string]:TopicCategory[]} = {}

Мы можем получить массив TopicCategory следующим образом;

const values:TopicCategory[] =
     Object.keys(DOCUMENTATION_CATALOG).map(
     key => DOCUMENTATION_CATALOG[key])

Когда я расширяю TopicCategory с помощью AbstractTopic Я получаю следующую ошибку для переменной values:

константные значения: TopicCategory [] Тип «TopicCategory [] []» нельзя назначить типу «TopicCategory []». Тип «TopicCategory []» не имеет общих свойств с типом «TopicCategory».

Это Stackblitz

Я выделил его немного дальше. Ошибка не вызывается, если внутри TopicCategory.

нет свойств.

1 Ответ

1 голос
/ 09 октября 2019

Ваш DOCUMENTATION_CATALOG является картой от string до TopicCategory[].

Ваш values имеет тип TopicCategory[], но обратный вызов, переданный в map(), возвращает одно из значений вDOCUMENTATION_CATALOG, то есть TopicCategory[]. Следовательно, результатом вызова map() является массив TopicCategory[], который равен TopicCategory[][].

Я не могу дать никаких предложений, так как я не уверен, для чего предназначено value или, если DOCUMENTATION_CATALOG имеет неправильный тип.

Существует два различных решения:

Либо value должен иметь тип TopicCategory[][],

или DOCUMENTATION_CATALOG должно быть {[key:string]:TopicCategory}.

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