Tach!
in Javascript gibt es ja dieses bekannte Pattern Object.prototype.toString.call(o).slice(8, -1)
, mit dem man an den Typ einer Variable kommt.
Mich würde nun interessieren, ob etwas gegen einen breiten Einsatz eines solchen Typ-Checks spricht. Wenn ich an einer Library oder einem API schreibe ist es nicht wegzudenken, den Parameter-Input-Typ zu kennen - bspw. wenn man unterschiedliche Signaturen für eine Funktion zur Verfügung stellen möchte oder eine aussagekräftige Exception werfen. Oder wie regelt ihr sowas?
Gar nicht. Ich kann mich nicht erinnern, jemals einen Typcheck benötigt zu haben, ich schreibe aber auch keine öffentliche Software. Garbage in, garbage out. Wenn jemand meint, andere Werte als im dokumentierten Bereich übergeben zu müssen, dann muss er halt mit den Konsequenzen leben. Eine aussagekräftige Fehlermeldung muss auch nicht unbedingt sagen, was da gekommen ist. Das bekommt man auch selbst mit einem Debugger raus. Wichtiger ist eine Hilfestellung, wie man das Problem beheben kann, also nicht (nur) sagen was falsch ist, sondern was richtig wäre.
In vielen Fällen wird es auch reichen, eine Inhaltskontrolle vorzunehmen. Wenn es dabei implizit typecastet, dann macht es das eben. Kann ja auch vom Verwender so gewollt sein und ein zu enges Einschränken als kontraproduktiv empfunden werden. Zur Not gibt es auch noch die typsicheren Vergleichsoperatoren.
Wenn es denn unbedingt typsicher sein soll, bietet es sich auch an, Typescript zu verwenden.
dedlfix.