Установить тип для параметров функции? - PullRequest
121 голосов
/ 07 декабря 2011

Есть ли способ сообщить функции javascript, что определенный параметр имеет определенный тип?

Быть способным сделать что-то подобное было бы прекрасно:

function myFunction(Date myDate, String myString)
{
    //do stuff
}

Спасибо!

Обновление : Поскольку ответом является громкое "нет", если я хочу, чтобы myDate рассматривался как дата (для вызова функций даты на нем), я должен привести его в качестве даты внутри функции или установить для нее новую переменную типа Date?

Ответы [ 11 ]

0 голосов
/ 09 декабря 2017

Может быть, вспомогательная функция, как это. Но если вы видите, что регулярно используете такой синтаксис, вам, вероятно, следует переключиться на Typescript.

function check(caller_args, ...types) {
    if(!types.every((type, index) => {
        if(typeof type === 'string')
            return typeof caller_args[index] === type
        return caller_args[index] instanceof type;
    })) throw Error("Illegal argument given");
}

function abc(name, id, bla) {
   check(arguments, "string", "number", MyClass)
   // code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...