Provjere za JavaScript i QML
Pokrenite statičke provjere QML i JavaScript koda u svom projektu kako biste pronašli uobičajene probleme.
Za pokretanje statičkih provjera idite na Tools > QML/JS > Run Checks ili pritisnite Ctrl+Shift+C.
Pregledajte rezultate u filtrima QML i QML Analysis u odjeljku Issues.
Napomena: Ako za projekt omogućite QML Language Server, on koristi qmllint za provjeru QML i JavaScript koda i generiranje upozorenja, pa se kodovi pogrešaka i poruke razlikuju od onih u JavaScript i QML Error Codes.
Omogućavanje i onemogućavanje poruka
Za omogućavanje i onemogućavanje poruka za QML i JavaScript statičkog analizatora:
- Idite na Preferences > Qt Quick > QML/JS Editing.
- Odaberite Use customized static analyzer.

- U odjeljku Enabled odaberite poruke koje želite vidjeti.
- Qt Quick Da biste prikazali određene poruke samo za QML UI datoteke, odaberite ih u Only for Qt Quick UI. Ne možete omogućiti poruke samo za UI datoteke koje nisuQt Quick.
Kodovi pogrešaka JavaScript i QML
Mnoge poruke o pogreškama slične su onima u alatu JSLint Douglasa Crockforda. Za više informacija o pogreškama u JSLintu pogledajte Objašnjenja pogrešaka u JSLintu.
| Id | Težina | Poruka | Opis |
|---|---|---|---|
| M1 | Greška | Neispravna vrijednost za enum | |
| M2 | Greška | Vrijednost enuma mora biti niz ili broj | |
| M3 | Greška | Očekivana vrijednost broja | |
| M4 | Greška | Očekivana vrijednost Boolean | |
| M5 | Greška | Očekivana vrijednost niza | |
| M6 | Greška | Neispravan URL | |
| M7 | Upozorenje | Datoteka ili direktorij ne postoje | |
| M8 | Greška | Neispravna boja | |
| M9 | Greška | Očekuje se sidarna uzica | |
| M10 | Greška | Ponovljeno vezanje svojstva | Za više informacija pogledajte duplicirani ključ '{a}' u Objašnjenjima pogrešaka JSLinta. |
| M11 | Greška | Očekivan identifikator | Za više informacija pogledajte " Očekivao se identifikator, a umjesto toga viđen je '{a}' (rezervirana riječ)" u Objašnjenjima pogrešaka JSLinta. |
| M14 | Greška | Neispravan identifikator | Za više informacija pogledajte: Očekivan je identifikator, a umjesto toga je viđen '{a}' (rezervirana riječ). |
| M15 | Greška | Duplikatni ID | ID-ovi u datoteci moraju biti jedinstveni. Za više informacija pogledajte Duplicirani ključ '{a}'. |
| M16 | Greška | Neispravan naziv svojstva name | |
| M17 | Greška | Name nema članova | |
| M18 | Greška | Field nije član object | |
| M19 | Upozorenje | Dodjela u uvjetu | Možda je riječ o tipičkoj pogrešci. Ako je namjerno, stavite dodjelu u zagrade. |
| M20 | Upozorenje | Neiscrpni blok slučaja | Blokovi slučaja trebaju biti prazni ili završavati kontrolnom izjavom poput break, return ili continue. Alternativno, namjerno propuštanje možete označiti komentarom // fall through. |
| M23 | Upozorenje | Nemojte koristiti eval | Za više informacija pogledajte eval is evil u JSLint objašnjenjima pogrešaka. |
| M28 | Upozorenje | Nepristupačno | Ukazuje da podcrtana izjava nikada neće biti izvršena. |
| M29 | Upozorenje | Ne koristiti with | Za više informacija pogledajte Unexpected 'with' in JSLint Error Explanations. |
| M30 | Upozorenje | Ne koristite izraze s zarezom | |
| M31 | Upozorenje | Nepotrebno suzbijanje poruka | |
| M103 | Upozorenje | Name je već formalni parametar | |
| M104 | Upozorenje | Name je već funkcija | |
| M105 | Upozorenje | Var name se koristi prije njegove deklaracije | |
| M106 | Upozorenje | Name var je već deklariran | |
| M107 | Upozorenje | Name je deklarirana više od jednom | Varijable deklarirane u funkciji uvijek su vidljive svugdje unutar funkcije, čak i kada su deklarirane u ugnutim blokovima ili uvjetima izjave e for. Ponovno deklariranje varijable nema učinka. |
| M108 | Upozorenje | Funkcija name se koristi prije njezine deklaracije | Za više informacija, pogledajte {a} je korišten prije nego što je definiran u Objašnjenjima pogrešaka JSLint-a. |
| M109 | Upozorenje | Ne koristite Boolean kao konstruktor | Za više informacija pogledajte Ne koristite {a} kao konstruktor u JSLint objašnjenjima pogrešaka. |
| M110 | Upozorenje | Ne koristite String kao konstruktor | Za više informacija pogledajte Ne koristite {a} kao konstruktor. |
| M111 | Upozorenje | Ne koristite Object kao konstruktor | Za više informacija pogledajte Nemojte koristiti {a} kao konstruktor. |
| M112 | Upozorenje | Ne koristite Array kao konstruktor | Za više informacija pogledajte Nemojte koristiti {a} kao konstruktor. |
| M113 | Upozorenje | Ne koristite Function kao konstruktor | Za više informacija pogledajte Nemojte koristiti {a} kao konstruktor. |
| M114 | Savjet | Ključna riječ function i otvoreni zagrade trebali bi biti odvojeni jednim razmakom | Za više informacija pogledajte " Očekuje se točno jedan razmak između {a} i {b} " u Objašnjenjima pogrešaka JSLinta. |
| M115 | Upozorenje | Nemojte koristiti samostalne blokove | Blokovi ne utječu na opseg varijabli. Stoga blokovi koji nisu povezani s if, while itd. nemaju učinka i treba ih izbjegavati. |
| M116 | Upozorenje | Ne koristite izraze void | |
| M117 | Upozorenje | Zbunjenje pluseva | Za više informacija pogledajte poglavlje " Confusing pluses " u Objašnjenjima pogrešaka JSLinta. |
| M119 | Upozorenje | Zbunjući minusi | Za više informacija pogledajte Zbunjuće minuse u objašnjenjima pogrešaka JSLinta. |
| M121 | Savjet | Deklarirajte sve varijable funkcija na jednoj liniji | |
| M123 | Savjet | Nepotrebni zagrade | |
| M126 | Upozorenje | == i != mogu izvršiti konverziju tipa, koristite === ili !== da to izbjegnete | Usporedba nestroge jednakosti dopušta pretvorbu svojih operandâ u zajednički tip. To može dovesti do neočekivanih rezultata, poput toga da je ' \t\r\n' == 0 istinito. Koristite stroge operatore jednakosti === i !== i jasno navedite konverzije koje zahtijevate. |
| M127 | Upozorenje | Izrazi u izjavama trebaju biti samo dodjeljivanja, pozivi ili izrazi za brisanje | |
| M128 | Greška | Stanje ne može imati navedenu podređenu stavku | |
| M129 | Greška | Tip se ne može instancirati rekursivno | |
| M201 | Savjet | Postavite deklaracije var na početak funkcije | Za više informacija pogledajte premjestite deklaracije 'var' na vrh funkcije u Objašnjenjima pogrešaka JSLinta. |
| M202 | Savjet | Koristite samo jednu izjavu po retku | |
| M220 | Greška | Ova vrsta (naziv vrste) nije podržana kao korijenski element UI datoteke (.ui.qml) | Za više informacija o podržanim QML tipovima pogledajte UI datoteke. |
| M221 | Greška | Ova vrsta (naziv vrste) nije podržana u UI datoteci (.ui.qml) | Za više informacija o podržanim QML tipovima pogledajte UI datoteke. |
| M222 | Greška | Funkcije nisu podržane u UI datoteci (.ui.qml) | Za popis podržanih JavaScript funkcija pogledajte Podržane metode. |
| M223 | Greška | JavaScript blokovi nisu podržani u UI datoteci (.ui.qml) | Za više informacija o podržanim značajkama pogledajte UI datoteke. |
| M224 | Greška | Tip ponašanja nije podržan u UI datoteci (.ui.qml) | Za više informacija o podržanim QML tipovima pogledajte UI datoteke. |
| M225 | Greška | Stanja su podržana samo u korijenskom elementu u UI datoteci (.ui.qml) | Za više informacija o podržanim značajkama pogledajte UI datoteke. |
| M226 | Greška | Referenciranje roditelja korijenskog elementa nije podržano u UI datoteci (.ui.qml) | Za više informacija o podržanim značajkama pogledajte UI datoteke. |
| M227 | Greška | Ne miješajte funkcije prevođenja u UI datoteci (.ui.qml) | Iako su podržane različite funkcije prevođenja, kao što su qsTr i qsTrId, trebali biste odabrati jednu i dosljedno je koristiti unutar UI datoteke. Za više informacija pogledajte Qt QML Methods. |
| M300 | Greška | Nepoznata komponenta | |
| M301 | Greška | Nije moguće riješiti prototip name object | |
| M302 | Greška | Nije moguće riješiti prototip name | |
| M303 | Greška | Prototipni ciklus, posljednja ne-ponovljena komponenta je name | |
| M304 | Greška | Neispravan tip svojstva name | |
| M305 | Upozorenje | == i != izvode koerciju tipa, koristite === ili !== da je izbjegnete | Vidi M126. |
| M306 | Upozorenje | Pozivi funkcija koje započinju velikim slovom trebali bi koristiti new | Prema konvenciji, funkcije koje počinju velikim slovom su konstruktorske funkcije koje bi se trebale koristiti samo s new. |
| M307 | Upozorenje | Koristite new samo za funkcije koje započinju velikim slovom | Za više informacija pogledajte Do not use {a} as a constructor in JSLint Error Explanations. |
| M308 | Upozorenje | Ne koristite Number kao konstruktor | Za više informacija pogledajte Ne koristite {a} kao konstruktor. |
| M309 | Savjet | Koristite razmake oko binarnih operatora | |
| M310 | Upozorenje | Nehotično prazan blok, koristite ({}) za prazan objektni literal | |
| M311 | Savjet | Koristite type umjesto var ili variant za poboljšanje performansi | |
| M312 | Greška | Fali svojstvo number | |
| M313 | Greška | Očekivana vrijednost objekta | |
| M314 | Greška | Očekivana vrijednost niza | |
| M315 | Greška | Value očekivana vrijednost | |
| M316 | Greška | Maksimalna vrijednost broja je number | |
| M317 | Greška | Minimalna vrijednost broja je number | |
| M318 | Greška | Maksimalna vrijednost broja je ekskluzivna | |
| M319 | Greška | Minimalna vrijednost broja je ekskluzivna | |
| M320 | Greška | Vrijednost niza ne odgovara traženom obrascu | |
| M321 | Greška | Minimalna duljina vrijednosti niza je number | |
| M322 | Greška | Maksimalna duljina vrijednosti niza je number | |
| M323 | Greška | Number u vrijednosti niza očekuju se elementi | Za više informacija pogledajte bilješku " Notacija nizovog doslovnog izraza [] je poželjnija " u JSLint objašnjenjima pogrešaka. |
| M324 | Greška | Dostižena je maksimalna granica rekurzije pri posjetu AST-u, model koda bit će nepouzdan i najvjerojatnije neispravan | |
| M326 | Greška | Komponentama je dopušteno imati samo jedan podređeni element | Za više informacija pogledajte Component. |
| M327 | Upozorenje | Komponente zahtijevaju podređeni element | Za više informacija pogledajte Component. |
| M400 | Upozorenje | Duplikat uvoza | Izjava o uvozu je dodana dvaput. Za više informacija pogledajte Izjave o uvozu. |
| M401 | Greška | Nemojte referencirati korijenski element kao alias | Svojstvo alias ne može izravno referencirati korijensku komponentu. Umjesto toga stvorite instancu komponente. |
| M402 | Upozorenje | Izbjegavajte referenciranje korijenskog elementa u hijerarhiji | Svojstvo alias ne može referencirati korijensku komponentu u hijerarhiji. Umjesto toga stvorite instancu komponente. |
| M403 | Greška | Uslov 'when' ne može sadržavati objekt | Postavite uvjet when na izraz koji se vrednuje kao true kada je uvjet zadovoljen. |
Resetiranje modela koda
Ako nakon dodavanja novog QML modula vidite sljedeće poruke o pogreškama, pokušajte izgraditi projekt i zatim resetirati model koda:
- QML modul nije pronađen.
- Nepoznata komponenta (M300).
Da biste vidjeli poruku o pogrešci, pomaknite pokazivač miša preko koda koji Qt Creator ispodcrtava u uređivaču koda ili kada otvorite QML datoteku u Qt Design Studio.
Za resetiranje modela koda odaberite Tools > QML/JS > Reset Code Model.
Vidi također Provjera sintakse koda, Korištenje QML modula s dodatcima i Analiziranje koda.
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.