Javascript 包括检查Angular component中的内联数组创建。html不编译

Javascript 包括检查Angular component中的内联数组创建。html不编译,javascript,angular,typescript,Javascript,Angular,Typescript,我有这个enum: export enum Status { SOME_VAL = "SOME_VAL", SOME_VAL_2 = "SOME_VAL_2", SOME_VAL_3 = "SOME_VAL_3"; } 和我的界面: export SomeInterface { status?: Status; } 的简单用法包括在some.component.ts中创建内嵌数组的方法: let so

我有这个
enum

export enum Status {
    SOME_VAL = "SOME_VAL",
    SOME_VAL_2 = "SOME_VAL_2",
    SOME_VAL_3 = "SOME_VAL_3";
}
和我的
界面

export SomeInterface {
    status?: Status;
}
的简单用法包括在
some.component.ts
中创建内嵌数组的方法:

let someVal: boolean = [Status.SOME_VAL, Status.SOME_VAL_2].includes(this.someObject.status);
一切正常。但是,在
some.component.html
中:

<div *ngIf="[Status.SOME_VAL, Status.SOME_VAL_2].includes(someObject.status)">
    ...
</div>
并且不编译。转换为:

<div *ngIf="$any([Status.SOME_VAL, Status.SOME_VAL_2]).includes(someObject.status)">
    ...
</div>

在我的
some.component.ts
中,我可以从
html

中引用它,您需要使用enum实例来执行此操作。为此,请在.ts中声明一个变量,该变量保存枚举引用并可在.html模板中使用。例如:

在ts中:

public status = Status;
在html中:

<div *ngIf="[status.SOME_VAL, status.SOME_VAL_2].includes(someObject.status)">
    ...
</div>

...

我创建了一个
AsPipe

@Pipe({
  name: 'as'
})
export class AsPipe implements PipeTransform {

  transform<T>(value: any, args: T): T {
    return value as T;
  }
}

我有。那是关于你的
someObject.status
。它的值无法转换为状态枚举的项。你能验证一下吗?我已经更新了问题,它们是一样的。如果不是,则让someVal:boolean=[Status.SOME\u VAL,Status.SOME\u VAL\u 2]。包括(this.someObject.Status)
ts
中不起作用。。它应该会起作用。我在html模板中使用了[].indexOf(),效果很好。你可以在.ts中创建另一个变量,并给它数组
someVal:Status[]=[…]
,然后
*ngIf=“someVal.includes(someObject.Status)”
,因为据我所知,这个错误不会出现。你可能会遇到一些问题。例如,
status?:status
的类型为
status | undefined
,因此在
let-someVal:boolean=…
中已经出现错误。另外,如何分配
someObject.status
?应该类似于例如
状态:status.SOME\u Val
<div *ngIf="[status.SOME_VAL, status.SOME_VAL_2].includes(someObject.status)">
    ...
</div>
@Pipe({
  name: 'as'
})
export class AsPipe implements PipeTransform {

  transform<T>(value: any, args: T): T {
    return value as T;
  }
}
*ngIf="([Status.SOME_VAL, Status.SOME_VAL_2] | as: [Status]).includes(someObject.status)"