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.
Ja - das ist aber auch der einzige Fall, wo solche Typechecks meiner Meinung nach sinnvoll sind.
Aber selbst dort habe ich nie mit der [[Class]] arbeiten müssen (das ist der interne Typ, der Object.prototype.toString zurückgibt). Meist reicht ein simples typeof oder ein Truthy-Check aus, um die Signaturrn eine Funktion zu unterscheiden.
Allgemein setze ich in JavaScript auf "Duck Typing". Sobald ein Parameter für eine Operation nutzbar ist, sollte er auch einfach verwendet werden. Strenge Typechecks schränken die Flexibilität nur ein. Meist muss ich lediglich truthy/falsy, String, Number, Liste/Collections und ggf. Objekte erkennen.
Grüße Sebastian