Angular 10升级:为什么对抽象组件类使用@Directive而不是@Component?

问题描述

我最近将Angular应用程序从v9升级到了v10。

我注意到不再支持未修饰的类。参见here

因此,在ng upgrade期间,我没有装饰的抽象组件已更改为具有@Directive()装饰器。

例如

export abstract class AbstractFormControl implements ControlValueAccessor { ... }

已更改为

@Directive()
export abstract class AbstractFormControl implements ControlValueAccessor { ... }

为什么Angular使用@Directive@Component会不会是更好的方法,因为该类是一个组件而不是一个指令?目的是什么?

解决方法

组件要求您指定templatetemplateUrl,但不能与 和抽象类。

如注释中所述-组件是一种特殊类型的指令。因此,可以从抽象指令中继承。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...