Javascript 无论如何,我可以使这个函数更简洁

Javascript 无论如何,我可以使这个函数更简洁,javascript,node.js,Javascript,Node.js,给出这段代码来验证我的配置文件中是否有任何缺少的字段 if ( (typeof value === "string" && value.length > 0) || (Array.isArray(value) === true || value.length > 0) || Boolean(value) === true) { return value; } else { throw new Error(`Config value missin

给出这段代码来验证我的配置文件中是否有任何缺少的字段

  if ( (typeof value === "string" && value.length > 0) || (Array.isArray(value) === true || value.length > 0) || Boolean(value) === true) {
    return value;
  } else {
    throw new Error(`Config value missing`);
  }
}

如果您不关心值的类型:

如果值{ 返回值; }否则。。。 如果您关心值的类型

const isValidType=typeof value==string | | Array.isArrayvalue | | Booleanvalue; 如果值为&&isValidType{ 返回值; }否则。。。
Booleanvalue===true还包括所有其他检查。这一块不是做你想做的,就是你不需要所有其他的。@Jonaswillms它不做数组长度检查。空数组是真实存在的js@bryan60是的,所以一个空数组也会进入if分支,所以根本没有必要检查它的长度。@jonaswillms OP确实在做一个奇怪的检查。我以为他们在检查数组是否为空,但仔细检查后,他们会检查数组是否为空或是否有长度。虽然我怀疑他们的意图是在空数组上抛出一个错误。谁知道呢。@Jonaswillms我想做的检查是确保我的配置字段中有以下内容之一:列表不是空的,字符串或布尔值。布尔值有点过火,你可以直接删除强制转换并执行值。如果下一行是if value&&isValidType,则可以完全删除它,因为您要计算的完整表达式是value&&typeof value===string | | | Array.isArrayvalue | | Booleanvalue,这将导致计算逻辑子表达式值&&Booleanvalue,这是一个重言式。