Literal-Konstruktor
Diese Warnkategorie wird von qmllint als „ [literal-constructors] “ bezeichnet.
Verwenden Sie keine Funktion als Konstruktor
Was ist passiert?
Eine Literal-Konstruktionsfunktion wurde als Konstruktor verwendet.
Warum ist das schlecht?
Der Aufruf einer literalen Konstruktionsfunktion wie „ Number “ als reguläre Funktion wandelt den übergebenen Wert in eine primitive Zahl um. Der Aufruf von „ Number “ als Konstruktor gibt jedoch ein Objekt zurück, das von „ Number “ abgeleitet ist und diesen Wert enthält. Dies ist verschwenderisch und wahrscheinlich nicht das erwartete Ergebnis. Darüber hinaus kann es zu unerwartetem oder verwirrendem Verhalten führen, da der zurückgegebene Wert nicht primitiv ist.
Beispiel
import QtQuick
Item {
function numberify(x) {
return new Number(x)
}
Component.onCompleted: {
let n = numberify("1")
console.log(typeof n) // object
console.log(n === 1) // false
if (new Boolean(false)) // All objects are truthy!
console.log("aaa") // aa
}
}Um diese Warnung zu beheben, rufen Sie diese Funktionen nicht als Konstruktoren, sondern als reguläre Funktionen auf:
import QtQuick
Item {
function numberify(x) {
return Number(x)
}
Component.onCompleted: {
let n = numberify("1")
console.log(typeof n) // number
console.log(n === 1) // true
if (Boolean(false))
console.log("aaa") // <not executed>
}
}Das Array weist eine verwirrende Semantik auf
Was ist passiert?
Ein „ Array “-Konstruktor wurde mit mehr als einem Argument verwendet.
Warum ist das schlecht?
Der Konstruktor „ Array “ weist eine verwirrende Semantik auf:
new Array()Erzeugt ein leeres Array.new Array(42)Erzeugt ein Array mit 42 Elementen.new Array(42, 43)Erzeugt ein Array mit zwei Elementen: 42 und 43.
Beispiel
import QtQuick
Item {
function createArray() {
return new Array(1, 2, 3)
}
}Um diese Warnung zu beheben, verwenden Sie „ [...] “ anstelle von „ new Array(...) “.
Funktionen:
import QtQuick
Item {
function createArray() {
return [1, 2, 3]
}
}© 2026 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.