問題タブ [dart-analyzer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dart - プライベート識別子引数を持つシンボル
プライベート MethodMirror の単純名と同じシンボルを作成したいと考えています。ただし、Symbol のドキュメントには、新しい Symbol の引数は有効な公開識別子でなければならないと記載されています。Dart エディターを作成しようとするとconst Symbol('_privateIdentifier')
、この定数式の評価で例外がスローされることが通知されますが、プログラムは正常に実行され、問題なく使用できます。
ミラーシステムはシンボルを使用しているようです。
dart エディターでのドキュメント/エラー フラグは、古い dart アナライザーによるレガシー バグですか? または、将来この公的要件を強制する計画はありますか? 宣言の単純な名前と同じシンボルに縮小される一意の識別シンボルを作成する別の方法はありますか?
dart - dart: プロキシ アノテーションの使用
@proxy
注釈状態のドキュメント:
クラスに で注釈が付けられている場合
@proxy
、または注釈が付けられているクラスを実装している場合、そのクラスは、静的型分析に関して任意のインターフェイスと任意のメンバーを実装していると見なされます。そのため、オブジェクトを任意の型の変数に割り当てることは静的型の警告ではなく、オブジェクトの任意のメンバーにアクセスすることは静的型の警告ではありません。
ただし、次のコードが与えられます。
ダーツ編集者が警告
コードはチェックなしモードで期待どおりに実行されますが、警告は煩わしく、私が知る限り、その警告を抑制することが@proxy
タグが行うべき唯一のことです。
タグの使い方を誤解しています@proxy
か、それとも dart エディター/アナライザーのバグですか?
dart - dartanalyzer は、インターフェースから実装が欠落しているという警告を出さない
現在、Dart 言語の実験と学習を行っています。
次のようにIAnimalという 2 つの抽象メソッドを持つ抽象クラスを作成しています。
次に、2 つのメソッドを実装するDogクラスを作成します。
しかし、dart アナライザーは 2 つのメソッドが欠落していると不平を言います。これは意図された動作ですか、それともサポートされていませんか?
unit-testing - 生成された Dart コードをテストする
プロローグ
source_genを使用してDartコードを生成します。ジェネレーターの出力をテストしたい (テストパッケージを使用)。source_genのテストを見て、json_serializable_test.dartをテンプレートとして使用しました。generate
ジェネレーターを呼び出して、結果を文字列として取得できます。クラスとメソッドが期待どおりに生成されるかどうかをテストしたいと思います。残念ながら、この種のテストはjson_serializable_test.dartにありません:
ヘルパー ( など_getCompilationUnitForString
) を変更して、(常に を使用するのではなく) ソースを渡し、_testSource
そのアナライザー要素を取得します。これにより、ジェネレーターの入力と期待される出力をファイルまたは文字列として指定し、入力、出力、および期待される出力のアナライザー要素を取得できます。
アプローチ
名前とフィールド宣言によってクラスを一致させるために、この原始的なアプローチを思い付きました。
String 表現でフィールドを比較するため、このソリューションはエラーが発生しやすい可能性があります。これとは別に、ミスマッチの説明は非常に貧弱です。マッチャーを改善するにはどうすればよいですか?
Ps: 生成されたコードを期待値と比較するためのより良い方法はありますか?
dart - 保護されたメンバーの使用に関するヒントを抑制
メタパッケージは、直接のサブクラスの外部での保護されたメンバーの使用に関するアナライザーのヒントまたは警告を取得するために、(他のものに加えて) 注釈を提供します。@protected
情報: メンバー 'selectedChildrenChanged' は、'MenuItem' のサブクラスのインスタンス メンバー内でのみ使用できます ([bwu_ng_quick_nav] test/menu_item_test.dart:108)
単体テストのこれらのヒントには興味がありません。
どうすればそのようなヒントを抑えることができますか?
dart - Dart オーバーライド単項マイナス演算子
言語仕様 (10.1.1 演算子) に従って、一部の演算子をオーバーライドしようとしています。
「マイナス」演算子と「単項マイナス」演算子をオーバーライドすると、アナライザー エラーが発生します。
「演算子 "-" はクラス インデントで定義されていません」
しかし、クラスで私はそれを定義しました:
私はそれを好きなように使用しmyInstance--;
、実際には機能しますが、それでもアナライザーは不平を言い、エラーのためにコード「クリーン」を送信できません。
私は古いスレッドを調べました ( Why does overriding negate cause static warning in Dart ) が、ここでは関係ないと思います。
どんなアドバイスでも大歓迎です。