このページでは

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. Preferences 」 > Qt Quick > [QML/JS Editing] を選択します。
  2. Use customized static analyzer 」を選択します。

    Qt Quick の環境設定にある「QML/JS 編集」タブ

  3. Enabled 」で、表示したいメッセージを選択します。
  4. Qt Quick 」UI ファイルに対してのみ特定のメッセージを表示するには、 Only for Qt Quick UIQt 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ブロックは、空であるか、breakreturncontinue などの制御文で終了する必要があります。あるいは、// 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警告独立したブロックを使用しないでくださいブロックは変数のスコープに影響を与えません。したがって、ifwhile などに関連付けられていないブロックは効果がないため、使用は避けるべきです。
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)qsTrqsTrId など、いくつかの異なる翻訳関数がサポートされていますが、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ヒントパフォーマンスを向上させるには、varvariant の代わりに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.