メインコンテンツにスキップ

無効なvisibleoutsidetemplateannotation

アノテーション 'visibleOutsideTemplate' は、'@visibleForTemplate' アノテーションが付与されたクラス、enum、または mixin のメンバーにのみ適用できます。

説明

#

この診断は、@visibleOutsideTemplate アノテーションが誤って使用された場合にアナライザーによって生成されます。このアノテーションは、@visibleForTemplate アノテーションを持つクラス、enum、または mixin のメンバーにのみ付与され、 those members を @visibleForTemplate が課す可視性制限からオプトアウトするために使用されます。

#

次のコードは、クラスレベルに @visibleForTemplate アノテーションがないため、この診断を生成します。

dart
import 'package:angular_meta/angular_meta.dart';

class C {
  @visibleOutsideTemplate
  int m() {
    return 1;
  }
}

次のコードは、アノテーションがクラス宣言にあり、クラス、enum、または mixin のメンバーではないため、この診断を生成します。

dart
import 'package:angular_meta/angular_meta.dart';

@visibleOutsideTemplate
class C {}

一般的な修正

#

クラスがテンプレートからの参照のためだけに可視である場合は、クラスに @visibleForTemplate アノテーションを追加してください。

dart
import 'package:angular_meta/angular_meta.dart';

@visibleForTemplate
class C {
  @visibleOutsideTemplate
  int m() {
    return 1;
  }
}

@visibleOutsideTemplate アノテーションが、@visibleForTemplate アノテーションを持つクラス、enum、または mixin のメンバー以外のものに付与されている場合は、アノテーションを削除してください。

dart
class C {}