比如我要对象里面的数据类型都必须是number。
let numericDataStore = {
count: 0,
amount: 1234,
total: 14
};
可以用proxy来检验:
numericDataStore = new Proxy(numericDataStore, {
set(target, key, value, proxy) {
if (typeof value !== 'number') { //数字类型校验
throw Error("Properties in numericDataStore can only be numbers");
}
return Reflect.set(target, key, value, proxy);
}
})
如果成员不是number型,就会抛出错误。
//这会抛出错误
numericDataStore.count = "foo";
//这会正常设置新值
numericDataStore.count = 333;