有没有办法将多个元注释合并为一个



目前,我们的代码库中有很多类,它们使用相同的元注释。例如:

@autoEquatable
@immutable
@jsonSerializable
class SignInWithFacebookEvent extends LoginEvent {}

在达特有没有办法把它们结合在一起?例如:

@event
class SignInWithFacebookEvent extends LoginEvent {}

这会简单得多,而且如果我需要从所有事件类中添加/编辑/删除另一个元注释,我可以只添加/编辑或删除一个,而不编辑数百个类。

编辑:

更好的是元注释的继承性,例如:

@autoEquatable
@immutable
@jsonSerializable
class LoginEvent {}

所有的子类都有这些注释。这样的事情可能吗?

注释没有语言级别的语义-元数据注释的行为和功能完全取决于实现这些功能的工具,并且没有规范它们必须如何处理注释。

如果你对一个注释进行子类化或实现,一些工具可能会起作用(我认为angular Dart是一个例子,如果你对Component注释进行子类别化,它会起作用(,而其他工具则不会。大多数读取元数据的工具都无法使用子类元数据。

我不认为在Dart中有任何本地实现这一点的方法,但有一个名为super_annotations的pub.dev包可能有助于将多个注释组合为一个注释。

相关内容

最新更新