В проекте React я играю с библиотекой MobX. Одна вещь, которую вы можете сделать, это написать свой код, как будто вы работаете с примитивами, но под капотом MobX выполняет некоторую наблюдаемую магию. Я также использую Flow в этом проекте, и мне трудно найти правильный синтаксис для применения к наблюдаемым массивам MobX, которые имеют как минимум два дополнительных метода, заменяют и заглядывают.Как расширить массив с помощью проверки потока?
Файл TS для этого кода довольно подробно, и я довольно новичок в наборе текста. Файл TS можно найти здесь:
https://github.com/mobxjs/mobx/blob/master/src/types/observablearray.ts
Ни один из синтаксиса, который я пытался в потоке будет работать, это, вероятно, все довольно наивным/невежественны.
interface ObservableArray {
join(str: string): string;
replace(arr: Array<any>): ObservableArray;
map(mapFunction: Function): Array<any>;
reduce(reducerFunction: Function, initialValue: any): any;
peek(): Array<any>;
}
type MobxArray = ObservableArray;
или
interface ObservableArray extends Array {
peek(): Array<any>;
replace(arr: Array<any>): MobxArray<any>;
}
type MobxArray = ObservableArray;
Большую часть времени я получаю эту ошибку "Прогнозный полиморфный тип вместо типа 'MobxArray'." Я получаю эту ошибку, когда я пытаюсь объявить реквизита для компонента:
type MyComponentProps = {
myArray: MobxArray<string>;
};
const MyComponent = observer(({ myArray }: MyComponentProps) => (
<div>{ ... code ... }</div>
));
Был ли мопс когда-либо перевозимым потоком, поскольку этот вопрос был задан? Я думал, что слышал, что они это сделали, но я не могу найти его в документации – Jeff
Да, это так: https://github.com/mobxjs/mobx#flow-support – mweststrate