Lassen Sie uns sagen, dass wir eine sehr einfache Objekttyp definiert haben:den Typ einer Objekteigenschaft in einer Bewegungsart
type A = {
foo: string,
bar: number,
// ... many other properties
};
Nun möchten wir eine Variante dieser Art definieren, nur ersetzt die Art der foo
von ?string
:
type A2 = {
foo: ?string,
bar: number,
// ... many other properties, with the same types as in A
};
Wie das getan werden kann, ohne wieder die ganze Art definieren zu müssen?
Es wäre genug, wenn die Antwort nur in dem speziellen Fall der Ersetzung des Eigenschaftstyps T
durch ?T
funktionierte, da das mein häufigstes Problem ist.
Lösung 1 wäre perfekt für einen Parameter (das ist, was ich gefragt habe, also markiere ich als die akzeptierte Antwort). Es kann jedoch mühsam werden, wenn die Anzahl der zu ändernden Eigenschaften zunimmt. –
Ist es unmöglich, eine Eigenschaft von einem Typ zu entfernen (vielleicht über eine Direktive $ Xxxx), ohne den ursprünglichen Typ ändern zu müssen? –
Es gibt '$ Diff' aber mit einem anderen Verhalten am Ende: [Flowtype/try] (https://flowtype.org/try/#0C4TwDgpgBAglC8UDeAoKUBmB7LAuKAzsAE4CWAdgOYA0aUARgIbH7kCuAtvRMbegPT8oAOlFQOjciChZgACx5QwxLJGLBSEAigC+AbhQpQkKACEEUACQARUhgwAeGNWSYc+ImSpQdAPgMoABRIbnhQAOSM4S5MLFAAjD74MACUBsGh+GzkACYQGBQQOTHM+Ik6+KZpQSHYYewANg0lceWVaVCCUA6IPCrENQylCUlmKZ1CPVDypARQs1CMTVgA7kUoQA) – gcanti