Es6类构造函数检查参数是否传递

时间:2017-10-25 20:09:30

标签: javascript ecmascript-6

假设我有一个带有构造函数参数的类。我可以确保在实例化类时传入参数吗?

class Test {
    constructor(id) {}
} 

//会抛出某种错误

var test = new Test();

// ok

var test = new Test(1);

2 个答案:

答案 0 :(得分:1)

检查构造函数中是否未定义参数(=== undefined),如果抛出错误:



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

new Test();




答案 1 :(得分: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");
    …
}