嘿,伙计们,我是初级,需要一些帮助
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
。