如何测试JavaScript对象仅具有特定的字段/属性

时间:2018-11-11 06:56:40

标签: javascript typescript

我具有此功能,用于测试对象是否具有某些字段

validateServerResponseStructure(res: any) {
    let isTypeCorrect: boolean = (
      res.result != undefined) && (res['additional-info'] != undefined
    );
    return isTypeCorrect;
  }

是否可以测试res仅具有resultadditional-info属性,而没有其他方法?

1 个答案:

答案 0 :(得分:2)

只需检查其keys的长度正好是两个。另外,如果要确保属性不是undefined,可能最好使用严格相等比较:

validateServerResponseStructure(res: any) {
  let isTypeCorrect: boolean = (
    res.result !== undefined
    && res['additional-info'] !== undefined
    && Object.keys(res).length === 2
  );
  return isTypeCorrect;
}

在不寻常的情况下,您可能具有包含undefined值的属性,并且想要允许这些值,请检查键的长度以及result和{{1} }包含在键中:

additional-info