Конструктор класса Es6 проверяет, переданы ли аргументы

1

Пусть говорят, что у меня есть класс с параметром для его конструктора. Могу ли я удостовериться, что параметр передается при создании экземпляра класса?

class Test {
    constructor(id) {}
} 

//будет бросать какую-то ошибку

var test = new Test();

//Хорошо

var test = new Test(1);
  • 0
    Я думаю, что лучшее, что вы можете сделать, это проверить это в теле конструктора. т.е.: constructor(id) { if (id === undefined) throw new Error(...); }
  • 0
    if (! id) выдает новую Error ()
Показать ещё 5 комментариев
Теги:
ecmascript-6

2 ответа

1
Лучший ответ

Проверьте конструктор, если аргумент не определен (=== undefined), и если он выдает ошибку:

class Test {
    constructor(id) {
      if(id === undefined) {
        throw new Error('id is undefined');
      }
    }
} 

new Test();
1

Ты можешь использовать

constructor(id) {
    if (typeof id != "number")
        throw new Error("missing numeric id argument");
    …
}

или же

constructor(id) {
    if (arguments.length < 1)
        throw new Error("missing one argument");
    …
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню