Provjere za JavaScript i QML
Pokrenite statičke provjere na QML i JavaScript kodu u vašem 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 QML i JavaScript poruka statičkog analizatora:
- Idite na Preferences > Qt Quick > QML/JS Editing.
- Odaberite Use customized static analyzer.

- U Enabled u odaberite poruke koje želite vidjeti.
- Da biste prikazali određene poruke samo za Qt Quick 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 za 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 sidrena linija | |
| 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 je viđen '{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đeno '{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 | Mogla bi biti tipičarska pogreška. Ako je namjerna, okružite dodjelu zagradama. |
| M20 | Upozorenje | Neiscrpljivi blok slučaja | Blokovi slučajeva trebaju biti ili prazni ili završavati kontrolnom izjavom poput break, return ili continue. Alternativno, namjerno preskakanje možete označiti završavanjem komentarom // fall through. |
| M23 | Upozorenje | Ne koristite 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 potiskivanje 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 deklarirana je više puta | Varijable deklarirane u funkciji uvijek su vidljive svugdje unutar funkcije, čak i kada su deklarirane u ugnutim blokovima ili uvjetima izjave for. Ponovno deklariranje varijable nema učinka. |
| M108 | Upozorenje | Funkcija name je korištena prije svoje deklaracije | Za više informacija, pogledajte {a} je korišten prije nego što je definiran u Objašnjenjima pogrešaka JSLinta. |
| 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 Ne koristite {a} kao konstruktor. |
| M112 | Upozorenje | Ne koristite Array kao konstruktor | Za više informacija pogledajte Ne koristite {a} kao konstruktor. |
| M113 | Upozorenje | Ne koristite Function kao konstruktor | Za više informacija pogledajte Ne koristite {a} kao konstruktor. |
| M114 | Savjet | Ključna riječ function i otvoreni zagrljaj 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 | Ne koristite 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 | Zbunjući plusevi | Za više informacija pogledajte poglavlje " Confusing pluses " u Objašnjenjima pogrešaka JSLinta. |
| M119 | Upozorenje | Zbunujuće minusi | Za više informacija pogledajte Zbunjuće minuse u objašnjenjima pogrešaka JSLinta. |
| M121 | Savjet | Deklarirajte sve varijable funkcija na jednom retku | |
| M123 | Savjet | Nepotrebni zagrade | |
| M126 | Upozorenje | == i != mogu izvršiti konverziju tipa, koristite === ili !== kako biste to izbjegli | Ne-strogo usporedivanje 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 su vam potrebne. |
| 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 | |
| M203 | Upozorenje | Imperativni kod nije podržan u Qt Quick Designeru | |
| M204 | Upozorenje | Ova QML vrsta nije podržana u Qt Quick Designeru | |
| M205 | Upozorenje | Referenca na roditeljsku QML vrstu ne može se ispravno riješiti u Qt Quick Designeru | |
| M206 | Upozorenje | Ovo vezanje vizualne svojine ne može se ocijeniti u lokalnom kontekstu i možda se neće prikazati u Qt Quick Designeru kako se očekuje | |
| M207 | Upozorenje | Qt Quick Designer podržava samo stanja u korijenskom QML tipu | |
| M208 | Greška | Ovaj ID može biti dvosmislen i nije podržan u Qt Quick Designeru | |
| M209 | Greška | Ova vrsta (naziv vrste) nije podržana kao korijenski element u Qt Quick Designer | |
| 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 | Nemojte miješati 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 prisilnu konverziju tipova, 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 se smiju 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 | Neželjeni 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 | Tekstualna vrijednost ne odgovara zahtijevanom uzorku | |
| 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 "[] je poželjnija notacija nizovih literalnih vrijednosti" u objašnjenjima pogrešaka JSLint-a. |
| 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 | Uslovna klauza 'when' ne može sadržavati objekt | Postavite uvjet when a na izraz koji se evaluira na true kada je uvjet zadovoljen. |
Ponovno postavljanje 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 podcrtava u uređivaču koda ili kada otvorite QML datoteku u Qt Quick Designeru.
Za resetiranje modela koda odaberite Tools > QML/JS > Reset Code Model.
Vidi također Provjera sintakse koda, Analiziranje koda i Korištenje QML modula s dodatcima.
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.