此条件将始终返回'true',因为'string[]'和'DeliveryTypeEnum'的类型没有重叠。ts(2367)



嘿,伙计们,我是初级,需要一些帮助

if (query.deliveryType && query.deliveryType != DeliveryTypeEnum.EITHER) {
search.push({
terms: {
"deliveryType.keyword": [query.deliveryType, DeliveryTypeEnum.EITHER],
},
});
}

交货类型为字符串阵列

and error is :This condition will always return 'true' since the types 'string[]' and 'DeliveryTypeEnum' have no overlap. typescirpt (2367)

我在这里得到错误query.deliveryType && query.deliveryType != DeliveryTypeEnum.EITHER

因为query.deliveryType是一个数组。您可以使用includes之类的数组函数。因此,如果你的交付类型数组不包括EITHER,那么你可以随心所欲。

所以你可以这样做:

if (query.deliveryType && !query.deliveryType.includes(DeliveryTypeEnum.EITHER)){
// Do what ever you want!
}

您可以在此链接中了解有关includes功能的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

错误试图告诉您if语句可能不是您希望它做的事情,因为变量query.deliveryType的类型已经指示它永远不会是DeliveryTypeEnum.EITHER

最新更新