メタデータ 
メタデータは、コードに関する追加情報を与えるために使用します。メタデータ注釈は@で始まり、その後にコンパイル時定数(deprecatedなど)への参照や定数コンストラクタの呼び出しが続きます。
全てのDartコードには、4つのアノテーションが用意されています:Deprecated、@deprecated、@override、@pragmaです。overrideの使用例については、クラスの拡張を参照してください。以下は、@Deprecated アノテーションの使用例です:
dart
class Television {
  /// Use [turnOn] to turn the power on instead.
  @Deprecated('Use turnOn instead')
  void activate() {
    turnOn();
  }
  /// Turns the TV's power on.
  void turnOn() {...}
  // ···
}メッセージを指定したくない場合は@deprecatedを使うことができる。しかし、常に@Deprecatedでメッセージを指定することをお勧めします。
独自のメタデータアノテーションを定義することができます。以下は、2つの引数を取る@Todoアノテーションを定義する例です:
dart
class Todo {
  final String who;
  final String what;
  const Todo(this.who, this.what);
}そしてこれが、その@Todoアノテーションの使用例だ:
dart
@Todo('Dash', 'Implement this function')
void doSomething() {
  print('Do something');
}メタデータは、ライブラリ、クラス、typedef、型パラメタ、コンストラクタ、ファクトリ、関数、フィールド、パラメタ、変数の宣言の前や、importディレクティブやexportディレクティブの前に書くことができる。