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 のメッセージを有効/無効にするには、次のようにします:
- 環境設定> > を開きます。 Qt Quick>QML/JS Editing を選択します。
- Use customized static analyzer を選択します。

- Enabled で、表示するメッセージを選択します。
- 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 | 警告 | 終了していない空でないケース・ブロック | ケース・ブロックは空であるか、break 、return 、continue のようなフロー制御ステートメントで終了する必要があります。また、// 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 | 警告 | スタンドアロン・ブロックは使用しないでください。 | ブロックは変数のスコープに影響しません。従って、if 、while などに関連しないブロックは何の効果もなく、避けるべきです。 |
| 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) | qsTr やqsTrId のような複数の異なる翻訳関数がサポートされていても、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.