Dies kann nicht mit Flow in dieser Form durchgeführt werden. Da PropTypes zur Laufzeit und nicht statisch überprüft werden, kann die Flexibilität erhöht werden. Wenn ein statischer Typchecker so etwas erlaubt, wäre es unentscheidbar.
type Props = {
children: any,
// not sure about this name, but you get the idea
step: ?{
step: number,
steps: number,
},
footer: any,
}
Oder, wenn Sie steps
aber nicht step
haben kann:
aber Sie so etwas tun könnte
type Props = {
children: any,
// not sure about this name, but you get the idea
step: ?{
step?: number,
steps: number,
},
footer: any,
}
Offensichtlich ist keine dieser Optionen ganz so prägnant wie das, was Sie haben und müssen den Code ändern, der diese Werte erzeugt und konsumiert. Leider ist manchmal ein Preis zu zahlen, um die Sicherheit eines statischen Typcheckers zu erhalten.
ist eine weitere Option, nur sie beide optional zu lassen:
type Props = {
children: any,
step?: number,
steps?: number,
footer: any,
}
Auf diese Weise wird Fluss nicht erzwingen, dass steps
liegt vor, wenn step
existiert. Sie müssen jedoch Ihren anderen Code nicht ändern, und nichts hindert Sie daran, eine Laufzeitprüfung hinzuzufügen (was nicht schlechter ist als das, was Sie bereits haben).