首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于类型“string[]”和“DeliveryTypeEnum”没有overlap.ts(2367),此条件将始终返回“true”。

由于类型“string[]”和“DeliveryTypeEnum”没有overlap.ts(2367),此条件将始终返回“true”。
EN

Stack Overflow用户
提问于 2022-03-26 15:29:58
回答 2查看 1.9K关注 0票数 -2

嘿,伙计们,我很小,需要一些帮助

代码语言:javascript
复制
        if (query.deliveryType && query.deliveryType != DeliveryTypeEnum.EITHER) {
            search.push({
                terms: {
                    "deliveryType.keyword": [query.deliveryType, DeliveryTypeEnum.EITHER],
                },
            });
        }

传递类型是字符串数组。

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2022-03-27 11:05:34

因为query.deliveryType是一个数组。您可以使用数组函数(如包括)。因此,如果您的传递类型数组没有包括这两个类型,那么您可以随心所欲。

所以你可以这么做:

代码语言:javascript
复制
if (query.deliveryType && !query.deliveryType.includes(DeliveryTypeEnum.EITHER)){
   // Do what ever you want!
}

您可以在以下链接中了解更多关于包含函数的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

票数 1
EN

Stack Overflow用户

发布于 2022-03-26 15:45:06

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71629389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档