我想为我的dart代码创建一些自己的元数据,例如@table、@column,但我找不到任何关于它的有用文档.
但我确实发现angular中有一些特殊的元数据(例如NgController).dart :https://github.com/angular/angular.dart/blob/master/demo/todo/web/todo.dart#L52
如何在Dart中创建自己的元数据?有文件吗?
我想为我的dart代码创建一些自己的元数据,例如@table、@column,但我找不到任何关于它的有用文档.
但我确实发现angular中有一些特殊的元数据(例如NgController).dart :https://github.com/angular/angular.dart/blob/master/demo/todo/web/todo.dart#L52
如何在Dart中创建自己的元数据?有文件吗?
Dart支持元数据,用于将用户定义的注释附加到程序 struct .
元数据由一系列注释组成,每个注释都以字符@开头,后面跟着一个以标识符开头的常量表达式.如果表达式不是以下之一,则为编译时错误:
元数据可以出现在库、部件标题、类、类型定义、类型参数、构造函数、工厂、函数、字段、参数或变量声明之前,也可以出现在导入、导出或部件指令之前.
所以,根据你的建议,常数@table
、@column
受到功能的限制,因为它们不能保存额外的信息(参数).
@DataTable("sale_orders")
class SaleOrder {
@DataColumn("sale_order_date")
DateTime date;
}
@table
class Product {
@column
String name;
}
const DataColumn column = const DataColumn();
const DataTable table = const DataTable();
class DataTable {
final String name;
const DataTable([this.name]);
}
class DataColumn {
final String name;
const DataColumn([this.name]);
}
但在任何情况下,你都会 Select 最适合自己需要的选项.