我知道如果最初未在子类中定义键名,则Record子类不接受构造函数中的键值对。但是,我希望能够识别在Record的构造函数中传递无效密钥对的时间。
例如,
export default class MessageTester extends Record ({
successStatus: null,
message: null,
}) {
constructor(dataSet) {
/* Pseudo-code
* if (dataSet keys do not match MessageTester keys) {
* console.log('Keys passed to constructor do not match.');
*/
super(dataSet);
}
}
我考虑过从dataSet和MessageTester中检索密钥并比较它们,但后来我想出了另一个解决方案。我会通过从dataSet值中检索键来测试键。我无法使用this关键字获取记录在类内部工作的get方法。我上面列出的主要问题的任何解决方案都非常棒。
let dataSetKeys = Object.keys(dataSet);
for (let i = 0; i < dataSetKeys.length; i++) {
if(this.get(dataSetKeys[i]) === undefined)
console.log('Invalid key found.');
}
答案 0 :(得分:0)
好的,所以我至少想出了一个底部代码片段的解决方案。我应该一直在使用超级,因为get是记录的一种方法.....对不起,我的简单错误。但好奇的是,有更好的解决方案吗?
let dataSetKeys = Object.keys(dataSet);
for (let i = 0; i < dataSetKeys.length; i++) {
if(super.get(dataSetKeys[i]) === undefined)
console.log('Invalid key found.');
}