Bei der Definition einer Ursache-Reaktion-Bindung und ich möchte wissen, wie ich eine Bindung ermitteln kann, die mehrere Typen akzeptiert. Zum Beispiel habe ich ein Argument ~value
, das akzeptieren sollte: string
, number
, array(string)
oder array(number)
. Im Moment verwende ich option('a)
, aber ich denke nicht, dass dies der sauberste Ansatz ist, da ich den Typ lieber explizit definieren würde. Wie kann das gemacht werden? Ich habe bs.unwrap
betrachtet, aber ich bin unsicher, wie man externe Syntax in eine Funktionssignatur kombiniert.Wie definiert man eine Bindung, die mehrere Typen in der Funktionssignatur mit reason-react akzeptiert?
module Select = {
[@bs.module "material-ui/Select"] external reactClass : ReasonReact.reactClass = "default";
let make =
(
...
~menuProps: option(Js.t({..}))=?,
~value: option('a), /* Should be type to string, number, Array of string and Array of number */
~style: option(ReactDOMRe.style)=?,
...
children
) =>
ReasonReact.wrapJsForReason(
~reactClass,
~props=
Js.Nullable.(
{
...
"value": from_opt(value),
"style": from_opt(style)
}
),
children
);
};
Als Seite Frage, wie Nummerntyp nicht float und integer in Zahlen definiert ist, müssen in Grund würde meine Bindung auch Routenkarte?
Sowohl 'float' als auch' int' werden als js 'number' dargestellt, so dass Sie technisch mit" float "umgehen können, aber Sie werden wahrscheinlich beide aus Bequemlichkeit verwenden wollen. – glennsl