Angular 如何欺骗AOT compliance check/TS编译器来检查给定的代码段?

Angular 如何欺骗AOT compliance check/TS编译器来检查给定的代码段?,angular,Angular,我有一系列权限,如下所示: permissions={ view: "permissionName1", create: "permissionName2" } 在组件的构造函数中,我有一个方法,该方法将权限名称转换为布尔值,指出您是否拥有权限,因此生成的运行时权限如下所示 permissions={ view: true, create: false } 当我需要在模板中使用权限时,它可以正常工作,如下所示: <ng-template *ngIf="permissio

我有一系列权限,如下所示:

permissions={
  view: "permissionName1",
  create: "permissionName2"
}
在组件的构造函数中,我有一个方法,该方法将权限名称转换为布尔值,指出您是否拥有权限,因此生成的运行时权限如下所示

permissions={
  view: true,
  create: false
}
当我需要在模板中使用权限时,它可以正常工作,如下所示:

<ng-template *ngIf="permissions.view"> </ng-template>

如果希望在多个条件下使用权限,则会出现问题

 <ng-template *ngIf="someSortOfCondition && permissions.view"> </ng-template>

这给了我一个编译AOT时的错误

类型“string”不可分配给类型“boolean”

我从内存中记下了这一点,因此它可能不是准确的错误消息。很明显,我想在这个条件表达式中使用字符串作为布尔值,因为在编译时
权限。view
确实是一个字符串-它是一个权限名,而不是它的值


有没有一种方法可以欺骗AOT分析器忽略我的可响应性上的给定情况?权限是在构造函数中初始化的。

如果您在模板中编写
权限['view']
而不是
权限,则它将起作用

对于AOT编译检查,您可以根据

我同意这将是非常有用的,但这是正确的要求 因为它在我的心里。这是一个插件 我们使用的tslint实现了特定角度的fules


你试过了吗!!权限。查看
?@yurzui我刚才在github上看到了,我会去看看的!