目次

implicit_reopen

クラスを暗黙的に再オープンしないでください。

このルールは現在実験的であり、Dart 3.0以降で利用可能です。

このルールには、クイックフィックスが用意されています。

詳細

#

クラスに`interface`、`base`、`final`、または`sealed`修飾子を使用するか、ミックスインに`base`修飾子を使用することで、作成者はクラスとミックスインが定義されているライブラリの外部から実装、拡張、および/またはミックスインを許可するかどうかを制御できます。場合によっては、作成者が誤ってこれらの制御を緩和し、クラスを暗黙的に「再オープン」してしまう可能性があります。(ミックスインでは同様の再オープンは発生しません。)

このLintは、`package:meta`の`@reopen`アノテーションを使用して明示的に指定することを要求することにより、意図せずにクラスを再オープンすることを防ぎます。

悪い例

dart
interface class I {}

class C extends I {} // LINT

良い例

dart
interface class I {}

final class C extends I {}
dart
import 'package:meta/meta.dart';

interface class I {}

@reopen
class C extends I {}

使用方法

#

`implicit_reopen`ルールを有効にするには、`analysis_options.yaml`ファイルの**linter > rules**の下に`implicit_reopen`を追加します。

analysis_options.yaml
yaml
linter:
  rules:
    - implicit_reopen