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 メッセージを有効または無効にするには:
- 「Preferences 」 > 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 | エラー | 列挙型の値は文字列または数値でなければなりません | |
| M3 | エラー | 数値が期待されます | |
| M4 | エラー | ブール値が期待されます | |
| M5 | エラー | 文字列値が必要です | |
| M6 | エラー | 無効なURL | |
| M7 | 警告 | ファイルまたはディレクトリが存在しません | |
| M8 | エラー | 無効な色 | |
| M9 | エラー | アンカーラインが必要です | |
| M10 | エラー | プロパティのバインディングが重複しています | 詳細については、『JSLint エラー解説』の「重複するキー '{a}'」を参照してください。 |
| M11 | エラー | ID が必要です | 詳細については、JSLint エラーの説明の 「識別子が期待されたが、代わりに '{a}'(予約語)が検出された」を参照してください。 |
| M14 | エラー | 無効な ID | 詳細については、「識別子が期待されたが、代わりに '{a}'(予約語)が検出された」を参照してください。 |
| M15エラー | エラー | ID の重複 | ファイル内の ID は一意である必要があります。詳細については、「重複するキー '{a}'」を参照してください。 |
| M16 | エラー | 無効なプロパティ名name | |
| M17 | エラー | Name にはメンバーがありません | |
| M18 | エラー | Field のメンバーではありませんobject | |
| M19 | 警告 | 条件式内の代入 | タイプミスかもしれません。意図的な場合は、代入式を括弧で囲んでください。 |
| M20 | 警告 | 終了文のない非空のcaseブロック | caseブロックは、空であるか、break 、return 、continue などの制御文で終了する必要があります。あるいは、// fall through コメントで終了することで、意図的なフォールスルーであることを示すこともできます。 |
| M23 | 警告 | 使用しないでくださいeval | 詳細については、JSLint のエラー説明にある「eval is evil」を参照してください。 |
| M23警告使用しないでください詳細については、JSLint の「エラーの説明」にある「eval is evil」を参照してください。 | 警告 | 到達不能 | 下線が引かれた文が決して実行されないことを示しています。 |
| M29 | 警告 | 使用しないでくださいwith | 詳細については、「JSLint エラー説明:予期しない 'with'」を参照してください。 |
| M30 | 警告 | コンマ式は使用しないでください | |
| M31 | 警告 | 不要なメッセージの非表示 | |
| M103 | 警告 | Name はすでに形式パラメータとして定義されています | |
| M104 | 警告 | Name はすでに関数です | |
| M105 | 警告 | name 変数が宣言される前に使用されています | |
| M106 | 警告 | Name はすでに変数として定義されています | |
| 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 」と開括弧の間には、1 文字分のスペースを入れる必要があります | 詳細については、『JSLint エラーの説明』の「{a} と {b} の間には正確に 1 つのスペースが必要」を参照してください。 |
| M115 | 警告 | 独立したブロックを使用しないでください | ブロックは変数のスコープに影響を与えません。したがって、if やwhile などに関連付けられていないブロックは効果がないため、使用は避けるべきです。 |
| M116 | 警告 | void 式を使用しないでください | |
| M117 | 警告 | 紛らわしいプラス記号 | 詳細については、『JSLint エラー説明』の「紛らわしいプラス記号」を参照してください。 |
| M119 | 警告 | 紛らわしいマイナス記号 | 詳細については、JSLintのエラー説明にある「紛らわしいマイナス記号」を参照してください。 |
| M121 | ヒント | すべての関数変数を1行で宣言してください | |
| M123 | ヒント | 不要な括弧 | |
| M126 | 警告 | == および `!= ` は型変換を行う可能性があるため、これを回避するには `=== ` または `!== ` を使用してください | 非厳密な等価比較では、引数を共通の型に変換することが許されています。これにより、' \t\r\n' == 0 が true になるなど、予期しない結果が生じる可能性があります。厳密な等価演算子=== および!== を使用し、必要な型変換を明示的に指定してください。 |
| M127 | 警告 | 式文は、代入、呼び出し、または削除式のみにすべきです | |
| M128 | エラー | 状態には、指定された子項目を含めることはできません | |
| M129 | エラー | 型を再帰的にインスタンス化することはできません | |
| M201 | ヒント | 関数の先頭に変数宣言を配置してください | 詳細については、『JSLint エラーの説明』の「'var' 宣言を関数の先頭に移動する」を参照してください。 |
| M202 | ヒント | 1行につき1つの文のみを使用してください | |
| M203 | 警告 | Qt Quick Designer では、命令型コードはサポートされていません | |
| M204 | 警告 | この QML タイプは、Qt Quick Designer ではサポートされていません。 | |
| M205 | 警告 | Qt Quick Designer では、親 QML タイプへの参照を正しく解決できません。 | |
| M206 | 警告 | このビジュアルプロパティのバインディングはローカルコンテキストでは評価できず、Qt Quick Designer では期待どおりに表示されない可能性があります | |
| M207 | 警告 | Qt Quick Designer は、ルート QML タイプ内の状態のみをサポートしています。 | |
| M208 | エラー | このIDは曖昧である可能性があり、Qt Quick Designerではサポートされていません | |
| M209 | エラー | このタイプ(タイプ名)は、Qt Quick Designer ではルート要素としてサポートされていません。 | |
| M220 | エラー | この型(型名)は、UI ファイル(.ui.qml )のルート要素としてサポートされていません。 | サポートされている QML タイプに関する詳細については、「UI ファイル」を参照してください。 |
| M221 | エラー | この型 (型名) は、UI ファイル (.ui.qml) ではサポートされていません。 | サポートされている QML タイプに関する詳細については、「UI ファイル」を参照してください。 |
| M222 | エラー | UI ファイルでは関数はサポートされていません (.ui.qml) | サポートされている JavaScript 関数のリストについては、「サポートされているメソッド」を参照してください。 |
| M223 | エラー | UI ファイルでは JavaScript ブロックはサポートされていません (.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 メソッド」を参照してください。 |
| 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警告コンポーネントには子要素が必要です詳細については、xml-ph-0000@deepl.internal を参照してください。 | 警告 | インポートの重複 | import 文が 2 回追加されています。詳細については、「import 文」を参照してください。 |
| M401 | エラー | ルート項目をエイリアスとして参照しないでください | alias プロパティはルートコンポーネントを直接参照できません。代わりに、そのコンポーネントのインスタンスを作成してください。 |
| M402 | 警告 | 階層内のルート項目への参照は避けてください | alias プロパティは、階層内のルートコンポーネントを参照することはできません。代わりに、そのコンポーネントのインスタンスを作成してください。 |
| M403 | エラー | when条件にオブジェクトを含めることはできません | when 条件を、条件が満たされたときにtrue と評価される式に設定してください。 |
コードモデルのリセット
新しい QML モジュールを追加した後に以下のエラーメッセージが表示された場合は、プロジェクトをビルドしてからコードモデルをリセットしてみてください:
- QMLモジュールが見つかりません。
- 不明なコンポーネント (M300)。
エラーメッセージを確認するには、コードエディタで「Qt Creator 」が下線を引いているコードの上にマウスカーソルを合わせるか、Qt Quick DesignerでQMLファイルを開いてください。
コードモデルをリセットするには、[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.