#flowtype
#тип потока
Вопрос:
Я пытаюсь расширить интерфейс массива, но сталкиваюсь со следующей ошибкой вывода потока: «Невозможно реализовать ‘Array’, потому что это не интерфейс»
Вот действительно простой пример, который вызывает ошибку:
export interface MyIArray<T> extends Array<T> {
}
function foo() {
const list: MyIArray<any> = [];
}
В этом примере поток нарушен объявлением const list .
Комментарии:
1. Массив — это класс , а не интерфейс
2. Значит , тип mobx для IObservableArray является ошибкой?
Ответ №1:
Извините, это должен быть комментарий, но ссылка Try Flow слишком длинная:
Это похоже на тип mobx для IObservableArray
ошибки. Я скопировал соответствующие типы из того файла, который вы связали, и попытался объявить переменную массива как IObservableArray
и поток жалуется (попробуйте поток). Я не уверен, существует ли действительный способ ввода и расширения Array
напрямую. Если вы можете, его будет проще вводить MyIArray
, если вы составите его с Array
помощью —установка свойства для MyIArray
экземпляров, которые являются ванильным массивом, а затем добавление дополнительных свойств / методов к MyIArray
.