Ich bin derzeit den Quellcode für das Flux Async Beispiel zu lesen, die Strömungs- und Immutable js Bibliotheken verwendet:
Die Definition des Todo Rekords verwirrt mich. Der Code deklariert zuerst eine Todo-Klasse (aus dem Flow-Dokument scheint dies als Schnittstelle verwendet zu werden, aber diese Datei wird nicht in das Verzeichnis flow/dieses Beispiels gesetzt, was dem Flow-typed/-Verzeichnis entspricht, wie in Ablaufdokument). Aber dann gibt es eine Neubindung der Todo-Variable und die Neubindung an eine neue Immutable-Record-Klasse. Ich verstehe nicht den Zweck der ersten Klasse Deklaration Block
declare class Todo {
id: string;
complete: boolean;
text: string;
constructor(data: {
id: string;
complete: boolean;
text: string;
}): void;
set(key: 'id', value: string): Todo;
set(key: 'complete', value: boolean): Todo;
set(key: 'text', value: string): Todo;
}
Kann jemand bitte dieses Muster erklären und was ist ihr Zweck? Kann man davon ausgehen, dass diese Schnittstelle einfach für Flow da ist und nicht mehr?
Ich war über die spezifische Syntax dieses Teils des Beispielcodes neugierig. Sie deklarieren eine Klasse mit dem Namen Todo mit dem 'declare'-Schlüsselwort von Flow und binden dann die Todo-Klasse an eine Immutable.Record-Klasse. Ich verstehe nicht, warum sie Todo zweimal mit zwei separaten Deklarationen deklarieren - warum nicht einfach die Immutable.Record-Klasse für Todo haben? Warum verwenden sie in diesem Fall das 'declare'-Schlüsselwort von Flow? – shotes