In einem React-Projekt spiele ich mit der MobX-Bibliothek. Eine Sache, die Sie tun können, ist Ihren Code zu schreiben, wie Sie mit den Primitiven arbeiten, aber unter der Haube MobX macht einige beobachtbare Magie. Ich benutze auch Flow in diesem Projekt und finde es schwierig, die richtige Syntax für die beobachtbaren MobX-Arrays zu finden, die mindestens zwei zusätzliche Methoden, replace und peek, haben.Wie erweitere ich ein Array mit dem Flow-Type-Checker?
Die TS-Datei für diesen Code ist ziemlich in die Tiefe und ich bin ziemlich neu zu tippen. Die TS-Datei finden Sie hier:
https://github.com/mobxjs/mobx/blob/master/src/types/observablearray.ts
Keine der Syntax, die ich im Flow versucht haben, funktionieren wird, ist es wahrscheinlich alle ziemlich naiv/unwissend.
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;
oder
interface ObservableArray extends Array {
peek(): Array<any>;
replace(arr: Array<any>): MobxArray<any>;
}
type MobxArray = ObservableArray;
Die meiste Zeit ich diesen Fehler "Expected polymorphen Typ anstelle des Typs 'MobxArray'." Ich erhalte diese Störung, wenn ich versuche, die Requisiten für eine Komponente zu erklären:
type MyComponentProps = {
myArray: MobxArray<string>;
};
const MyComponent = observer(({ myArray }: MyComponentProps) => (
<div>{ ... code ... }</div>
));
Hat Mobx jemals Fluss-Typings gesendet, seit diese Frage gestellt wurde? Ich dachte, ich hätte sie gehört, aber ich kann es nicht in der Dokumentation finden – Jeff
Ja, tut es: https://github.com/mobxjs/mobx#flow-support – mweststrate