このページでは

JavaScriptとQMLのチェック

プロジェクトのQMLとJavaScriptコードの静的チェックを実行して、よくある問題を見つけます。

静的チェックを実行するには、Tools >QML/JS >Run Checks にアクセスするか、Ctrl+Shift+Cを選択します。

Issuesの QML およびQML Analysis フィルタで結果を表示します。

注: プロジェクトでQML Language Server をオンにすると、qmllint を使用して QML および JavaScript コードをチェックし、警告を生成するため、エラー・コードおよびメッセージはJavaScript および QML エラー・コードのものとは異なります。

メッセージの有効・無効

静的アナライザの QML と JavaScript のメッセージを有効/無効にするには、次のようにします:

  1. 環境設定> > を開きます。 Qt Quick>QML/JS Editing を選択します。
  2. Use customized static analyzer を選択します。

    Qt Quick環境設定のQML/JS編集タブ

  3. Enabled で、表示するメッセージを選択します。
  4. Qt Quick UI ファイルに対してのみ特定のメッセージを表示するには、次のように選択します。 Only for Qt Quick UI.Qt Quick 以外の UI ファイルに対してのみメッセージを有効にすることはできません。

JavaScriptとQMLのエラーコード

エラーメッセージの多くは、Douglas Crockford氏のJSLintツールのものと似ています。JSLintのエラーについては、JSLintのエラー解説を参照してください。

ID深刻度メッセージ説明
M1エラー列挙型の値が無効
M2エラーenum値は文字列または数値でなければならない。
M3エラー期待される数値
M4エラー期待されるブール値
M5エラー予想される文字列値
M6エラー無効なURL
M7警告ファイルまたはディレクトリが存在しません
M8エラー無効な色
M9エラーアンカーラインが予想される
M10エラープロパティ・バインディングの重複詳細については、JSLintエラー解説の 重複キー'{a}'を参照してください。
M11エラーID が期待された詳細については、JSLintエラー解説のExpected an identifier and instead saw '{a}' (a reserved word)」を参照してください。
M14エラー無効な ID詳細については、JSLintエラーの説明の「Expected an identifier and instead saw '{a}' (a reserved word)」を参照してください。
M15エラーidの重複ファイル内のidは一意でなければなりません。詳細については、重複キー '{a}' を参照してください。
M16エラー無効なプロパティ名です。name
M17エラーName メンバがありません
M18エラーField のメンバではないobject
M19警告条件中の代入タイプミスの可能性があります。意図的な場合は、代入を括弧で囲んでください。
M20警告終了していない空でないケース・ブロックケース・ブロックは空であるか、breakreturncontinue のようなフロー制御ステートメントで終了する必要があります。また、// fall through のコメントで終了することで、意図的なフォールスルーを示すこともできます。
M23警告を使用しないでください。eval詳しくは、JSLint エラー解説の eval is evilを参照してください。
M28警告到達不能下線の文が決して実行されないことを示す。
M29警告を使用しないでください。with詳細は、JSLint エラー解説の 予期しない 'with'を参照。
M30警告カンマ式を使用しないでください。
M31警告不要なメッセージの抑制
M103警告Name はすでに正式なパラメータです。
M104警告Name はすでに関数
M105警告Varname が宣言前に使用されている
M106警告Name すでにvarである
M107警告Name が複数回宣言されている関数内で宣言された変数は、入れ子になったブロックやfor ステートメント条件で宣言された場合でも、関数内のあらゆる場所で常に表示されます。変数を再宣言しても効果はありません。
M108警告関数name が宣言前に使用されています。詳細については、JSLint エラー解説の {a} が定義される前に使用されましたを参照してください。
M109警告Boolean をコンストラクタとして使用しないでください。詳細はJSLintエラー解説の {a}をコンストラクタとして使用しないでくださいを参照してください。
M110警告String をコンストラクタとして使用しないでください。詳細については、コンストラクタとして {a} を使用しないでくださいを参照してください。
M111警告Object をコンストラクタとして使用しないでください。詳しくは{a} をコンストラクタとして使わないでください。
M112警告Array をコンストラクタとして使用しないでください。詳しくは{a} をコンストラクタとして使わないでください。
M113警告Function をコンストラクタとして使用しないでください。詳しくは{a} をコンストラクタとして使わないでください。
M114ヒントfunction キーワードと開始括弧は、半角スペースで区切る必要があります。詳細については、JSLint エラー解説の {a} と {b} の間に正確に 1 つのスペースが期待されるを参照してください。
M115警告スタンドアロン・ブロックは使用しないでください。ブロックは変数のスコープに影響しません。従って、ifwhile などに関連しないブロックは何の効果もなく、避けるべきです。
M116警告void 式を使用しないでください。
M117警告紛らわしいプラス詳細については、JSLint エラー解説の 混同したプラスを参照してください。
M119警告紛らわしいマイナス詳しくは、JSLintエラー解説の Confusing minusesを参照してください。
M121ヒント全ての関数バーを1行で宣言する。
M123ヒント不要な括弧
M126警告==!= は型の強制を行う可能性があります。これを避けるには=== または!== を使用してください。厳密でない等式比較は、引数を共通の型に変換することが許されています。そのため、' \t\r\n' == 0 が真になるなど、予期せぬ結果につながる可能性があります。厳密な等式演算子===!== を使用し、必要な変換を明示的に行ってください。
M127警告式文は代入、呼び出し、削除式のみであるべきです。
M128エラー状態は指定された子項目を持つことができません
M129エラー型を再帰的にインスタンス化できません
M201ヒントvar 宣言を関数の先頭に置く詳細については、JSLint エラー解説のvar 宣言を関数の先頭に移動する」を参照してください。
M202ヒント1行に1つの文だけを使う
M220エラーこの型(型名)はUIファイル(.ui.qml )のルート要素としてはサポートされていません。サポートされているQMLタイプについての詳細は、UIファイルを参照してください。
M221エラーこの型(型名)はUIファイル(.ui.qml)ではサポートされていません。サポートされている QML タイプの詳細については、UI ファイルを参照してください。
M222エラー関数は UI ファイル (.ui.qml) ではサポートされていません。サポートされているJavaScript関数のリストについては、サポートされているメソッドを参照してください。
M223エラーJavaScriptブロックは、UIファイル (.ui.qml) ではサポートされていません。サポートされている機能の詳細については、UIファイルを参照してください。
M224エラービヘイビアタイプは、UIファイル (.ui.qml) ではサポートされていません。サポートされているQMLタイプについては、UIファイルを参照してください。
M225エラー状態は、UIファイルのルートアイテムでのみサポートされています(.ui.qml)。サポートされている機能の詳細については、UIファイルを参照してください。
M226エラールート項目の親の参照は、UI ファイル (.ui.qml) ではサポートされていません。サポートされている機能の詳細については、UIファイルを参照してください。
M227エラーUIファイル内で翻訳関数を混在させないでください (.ui.qml)qsTrqsTrId のような複数の異なる翻訳関数がサポートされていても、UI ファイル内では 1 つを選択して一貫して使用する必要があります。詳細はQt QML Methods を参照してください。
M300エラー不明なコンポーネント
M301エラーのプロトタイプname を解決できませんでした。object
M302エラープロトタイプを解決できませんでしたname
M303エラープロトタイプサイクルで、最後の非繰り返しコンポーネントがname
M304エラー無効なプロパティ型name
M305警告==!= は型の強制を行うので、それを避けるには===!== を使ってください。M126を参照。
M306警告大文字で始まる関数の呼び出しは、コンストラクタ関数を使用する必要があります。new慣習上、大文字で始まる関数はコンストラクタ関数であり、new と共にのみ使用されるべきです。
M307警告new は、大文字で始まる関数にのみ使用してください。詳細については、JSLint エラー解説の {a} をコンストラクタとして使用しないでくださいを参照してください。
M308警告Number をコンストラクタとして使用しないでください。詳細については、コンストラクタとして {a} を使用しないでくださいを参照してください。
M309ヒント二項演算子の周りには空白を使用してください。
M310警告空のオブジェクト・リテラルには({})を使用してください。
M311ヒントパフォーマンスを向上させるには、var またはvariant の代わりにtype を使用してください。
M312エラープロパティがありませんnumber
M313エラー期待されるオブジェクト値
M314エラー期待される配列値
M315エラーValue 期待される値
M316エラー最大数値はnumber
M317エラー最小値はnumber
M318エラー最大数は排他的
M319エラー最小値が排他的
M320エラー文字列値が必要なパターンに一致しない
M321エラー文字列値の最小長はnumber
M322エラー文字列値の最大長はnumber
M323エラーNumber 配列値に期待される要素詳細については、JSLint エラー解説の 配列リテラル表記 [] が望ましいを参照してください。
M324エラーASTを訪問している最大再帰制限にヒットしました。
M326エラーコンポーネントは1つの子要素しか持つことができません。詳細については、Component を参照してください。
M327警告コンポーネントには子要素が必要です。詳しくはComponent をご覧ください。
M400警告インポートの重複import文が2回追加されています。詳細は、Import Statementsを参照してください。
M401エラールート項目をエイリアスとして参照しないでください。エイリアス・プロパティはルート・コンポーネントを直接参照できません。代わりにコンポーネントのインスタンスを作成してください。
M402警告階層内のルート項目を参照しないエイリアス・プロパティは、階層内のルート・コンポーネントを参照できません。代わりにコンポーネントのインスタンスを作成してください。
M403エラーwhen 条件にオブジェクトを含めることはできません。when 条件を、条件が満たされたときにtrue と評価される式に設定してください。

コード・モデルのリセット

新しい QML モジュールを追加した後に以下のエラーメッセージが表示された場合は、プロジェクトをビルドし てからコードモデルをリセットしてみてください:

  • QML モジュールが見つかりません。
  • Unknown Component (M300)。

不明なコンポーネント(M300) エラー・メッセージを表示するには、コード・エディターまたはQt Design Studio で QML ファイルを開いたときに、Qt Creator にアンダーラインが表示されるコードの上にマウス・ポインターを移動します。

コード・モデルをリセットするには、Tools >QML/JS >Reset Code Model を選択します。

コード構文のチェック」、「プラグインと QML モジュールの使用」、「コードの分析」も参照してください

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.