DIITHiTech
@DIITHiTech
Fullstack javascript developer

Не встречали ли Вы JS сниппет привязки значений по умолчанию+проверки параметров для функции?

Желательно еще и с базовым контролем типов входных данных- дабы в функциях меньше проверок делать- ищу способ еще меньше повторятся. Может кто видел уже реализации такого - посмотреть что и как у других- гугление ничего что то не находит, не думаю что никто не пробовал такое писать.
P.S Ну ES6 пока во внимание не берем - рано.

Пока по быстрому накатал, что обеспечивает такое:

var sayHello=function(name,age){
        return "Hello, "+name+"! Your age: "+age;
    }.defaults(this, ["" , "Unknown"], ["string" , "int"], 1);

    console.warn(sayHello());  //TypeError: Function expected at least 1 argument, but 0 were given
    console.warn(sayHello(123)); //TypeError: Function expected [string] as 1th argument, but [int] given
    console.warn(sayHello("admin")); //Hello, admin! Your age: Unknown
    console.warn(sayHello("admin",1.43)); //TypeError: Function expected [int] (not necessary) as 2th argument, but [float] given
    console.warn(sayHello("admin",25));// Hello, admin! Your age: 25

    var func=function(date){
         console.log("now",date)
    }.defaults(this, ["" , "Unknown"], [Date, "string" , "int", "float", "function","array","enum","object",RegExp], 1);

    func(1); //TypeError: Function expected [instance of Date]  as 1th argument, but [int] given


Много чего не учтено, надобно бы сделать возможность задания несколько допустимых типов на аргумент, авто приведение типов можно было бы... Но может где уже есть реализации нечто подобного.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 18:39
30000 руб./за проект
25 нояб. 2024, в 18:35
30000 руб./за проект
25 нояб. 2024, в 18:33
10000 руб./за проект