for (var key in rules) { var rule = formatRule(rules[key]); var has = obj.hasOwnProperty(key); if (!has) { if (rule.required !== false) { errors.push({ message: this.t('required'), field: key, code: this.t('missing_field') }); } continue; } var checker = TYPE_MAP[rule.type]; if (!checker) { throw new TypeError('rule type must be one of ' + Object.keys(TYPE_MAP).join(', ') + ', but the following type was passed: ' + rule.type); }checker为什么是undefined
时间: 2024-02-03 16:03:03 浏览: 63
django 自定义filter 判断if var in list的例子
`checker` 变量为 `undefined` 是因为在 `TYPE_MAP` 对象中没有定义 `rule.type` 属性对应的值。在这段代码中,`TYPE_MAP` 是一个对象,应该包含不同类型的检查器函数,例如:
```javascript
const TYPE_MAP = {
string: checkString,
number: checkNumber,
boolean: checkBoolean,
array: checkArray,
object: checkObject,
email: checkEmail,
url: checkUrl,
date: checkDate,
int: checkInt,
float: checkFloat
};
```
如果 `rule.type` 是上述类型之一,那么 `TYPE_MAP[rule.type]` 将返回对应的检查器函数。否则,将抛出一个类型错误异常。因此,需要检查 `rule.type` 是否正确地定义在了 `TYPE_MAP` 对象中。
阅读全文