Angular 9 生产错误:无法设置只有 getter 的(抽象)类 MyFilter { } 的属性 ?fac

amo*_*uda 5 angular

我在库中有一个抽象组件(没有ivy),带有一个@Directive()装饰器,该装饰器具有一些基本属性和函数可以继承给其子级。当我尝试在任何项目中使用该库时,我在浏览器控制台中收到以下错误:

\n\n

Uncaught TypeError: Cannot set property \xc9\xb5fac of class MyFilter {} which has only a getter

\n\n

这是课程:

\n\n
@Directive()\nexport abstract class MyFilter<T> {\n\n  @Input() form: FormGroup;\n  @Input() filterOpened: boolean;\n  @Input() enableSubmit: boolean;\n\n  abstract useFilter();\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

儿童班:

\n\n
@Component({\n  selector: \'my-text-filter\',\n  templateUrl: \'./text-filter.html\',\n  styleUrls: [\'./text-filter.scss\']\n})\nexport class MyTextFilter extends MyFilter<TextFilter> implements OnInit, OnChanges {\n\n  constructor() {\n    super();\n  }\n\n  ngOnInit() {\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n  }\n\n  useFilter() {\n  }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Meh*_*dad 2

您只需从 MyFilter 类中删除 @Directive() 装饰器即可。