2016-06-23 8 views
1

In Coffeescript, was ist der beste Weg, um eine Funktion mit obligatorischen Parametern zu erstellen? Im Moment mache ich das:Was ist der beste Weg, um einen Parameter einer Funktion zwingend zu machen?

myFunction: (requiredParam, optionalParam) -> 
    unless requiredParam? then throw new Error ... 
    ... 

Wenn ich, sagen wir, 5 Parameter oder sogar noch mehr, es dauert ziemlich viel Zeit und Raum einen Fehler für jeden Parameter zu werfen.

Gibt es eine einfachere/prägnantere Vorgehensweise?

Antwort

2

Sie können die Variable arguments in einer beliebigen Funktion verwenden, um sicherzustellen, dass die Anzahl der tatsächlichen Argumente nicht kleiner ist als die Anzahl der erforderlichen Argumente.

myFunction: (required1, required2, required3, optional1, optional2) -> 
    throw new Error("Given #{arguments.length} out of 3 required.") if arguments.length < 3 
    # ... 
+0

Oh, danke! Ich hätte denken sollen, dass ich das habe. – Zac

+0

Aber noch etwas, wenn ich wollte, dass eines der Argumente einen bestimmten Typ hat, würde es einen einfachen Weg geben, das zu tun? – Zac

+0

Dann müssen Sie den Typ in der nächsten Zeile überprüfen, hier keine Magie. Oder Sie können stattdessen [TypeScript] (http://www.typescriptlang.org/) ausprobieren. – fracz