JavaScript类型检查函数
直接上代码
传入一个数据对象和验证规则
检查规则里定义的字段类型
通过返回true 未通过返回false 并抛出异常
let data = {
name: new Date()
}
let rule = {
name: {
type: Number
}
}
let status = checkData(rule,data)
console.log("验证结果", status)
/*
* 类型检查器
* @params
* rule:object {键名:值类型} JS原生类型
* data:object {键名:值}
* 类型枚举
* String
* Number
* Boolean
* Array
* Object
* Date
* Function
* Symbol
*/
function checkData(rule,data) {
console.log("验证规则",rule)
console.log("数据",data)
try{
for(let key in rule){
console.log('字段',key)
console.log('规则类型',rule[key].type)
if(data[key] === null || data[key] === undefined){
throw new Error(key+"值不存在");
}else{
console.log('值类型',data[key].constructor)
let type = data[key].constructor
if(type !== rule[key].type){
throw new Error(key+"类型不匹配");
}
}
}
return true
}catch (e) {
console.log("错误", e)
return false
}
}