Typescript 如何检查字符串枚举数组是否包含字符串

Typescript 如何检查字符串枚举数组是否包含字符串,typescript,Typescript,我在typescript中声明了一个枚举,如下所示: enum MultiPhaseUnits { AMPERAGE = 'AMPERAGE', VOLTAGE = 'VOLTAGE', POWER_FACTOR = 'POWER_FACTOR', LINE_VOLTAGE = 'LINE_VOLTAGE' } 并创建一个枚举值数组,如下所示: this.multiPhaseUnits = [MultiPhaseUnits.AMPERAGE, MultiPhas

我在typescript中声明了一个枚举,如下所示:

enum MultiPhaseUnits {
    AMPERAGE = 'AMPERAGE',
    VOLTAGE = 'VOLTAGE',
    POWER_FACTOR = 'POWER_FACTOR',
    LINE_VOLTAGE = 'LINE_VOLTAGE'
}
并创建一个枚举值数组,如下所示:

this.multiPhaseUnits = [MultiPhaseUnits.AMPERAGE, MultiPhaseUnits.LINE_VOLTAGE, MultiPhaseUnits.POWER_FACTOR, MultiPhaseUnits.VOLTAGE];
我的问题是,当我检查此数组中是否包含字符串时,VScode表示字符串类型的
参数不能分配给MultiPhaseUnit类型的参数。例如:

if (this.multiPhaseUnits.indexOf(queryable.unit.apiUnit) > -1) {...}

它在
queryable.unit.apiUnit
下放置了一个红色的波形,其中
apiUnit
是一个字符串,格式为
安培数、线电压…
。我已经验证了这段代码是否有效,并验证了数组
multiPhaseUnits[]
最终本质上是一个字符串数组。为什么VScode会抱怨这张支票?即使我的代码可以工作,但如果我做错了什么,我如何修复它?

您需要将字符串转换为多相单元的类型

if (this.multiPhaseUnits.indexOf(MultiPhaseUnits[queryable.unit.apiUnit]) > -1)

就这样!谢谢