Ich bin derzeit in den Prozess der Google Closure Compiler zu vergleichen und die Flow statischen Typ checker, in Bezug auf die Ausdruckskraft. Was ich an letzterem mag, ist, dass es anscheinend sehr schön ist. Das Handbuch gibt dieses Beispiel:Stichwort Gewerkschaften in Schließung Compiler
type Result = Done | Error; // a disjoint union type with two cases
type Done = { status: 'done', answer: Matrix };
type Error = { status: 'error', message: string };
Gibt es eine Möglichkeit, so etwas mit Closure Compiler zu tun? Das bedeutet, dass bestimmte Eigenschaften eines Objekts nicht nur von einem bestimmten Typ sein müssen, sondern einen festen Wert haben? Und um diesen Wert für die Typinferenz zu verwenden, um zwischen verschiedenen Optionen in einer Union zu unterscheiden? Ich fand keine Dokumentation zu diesem Zweck.
Wusste nicht, dass man eine 'enum' als Typ verwenden könnte. Wenn ich Sie richtig erkläre, sagen beide Formen, die Sie vorschlagen, dass die 'Status'-Eigenschaft einer der beiden Werte sein kann, ohne die Verbindung zwischen Wert und dem entsprechenden Typ zu fixieren. Vielleicht würde ein einzelnes Element 'enum' pro Typ diesem Zweck dienen ... Muss etwas damit experimentieren. – MvG
Enum mit einem einzelnen Wert könnte funktionieren –