Redundante optionale Verkettung
Diese Warnkategorie wird von qmllint mit [redundant-optional-chaining]
angegeben.
Redundante optionale Verkettung
Was ist passiert?
Einige Lookups verwenden optionale Verkettungen, obwohl sie nicht notwendig sind. Dies kann passieren, wenn Enum-Werte nachgeschlagen werden oder wenn ein Lookup auf einer Basis durchgeführt wird, die nicht null
oder undefined
sein kann.
Warum ist das schlecht?
Ein optionaler Lookup muss eine Laufzeitprüfung durchführen, die ein regulärer Lookup nicht durchführt. Diese zusätzlichen Anweisungen können nicht immer als redundant erkannt und von den Werkzeugen optimiert werden. Sie führen dann zu zusätzlichen Kosten für die Laufzeitleistung und blähen das Programm unnötig auf.
Außerdem kann die Warnung darauf hindeuten, dass die optionale Suche an der falschen Basis in der Kette durchgeführt wurde. Im nächsten Abschnitt finden Sie ein konkreteres Beispiel.
Beispiel
// Main.qml import QtQml QtObject { // Main will either be resolved and always work, or throw an exception or fail to compile enum E { A, B, C } property int i: Main?.A // A url cannot be null or undefined property url u: "" property string s: u?.toString() // Did you mean to make the second lookup optional? property int i: Safe?.Unsafe.i }
Um diese Warnungen zu beheben, ersetzen Sie die überflüssigen optionalen Lookups durch nicht-optionale:
© 2025 The Qt Company Ltd. 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.