Na ovoj stranici

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:

  1. Idite na Preferences > Qt Quick > QML/JS Editing.
  2. Odaberite Use customized static analyzer.

    Zavižak za uređivanje QML-a/JS-a u postavkama Qt Quicka

  3. U Enabled u odaberite poruke koje želite vidjeti.
  4. 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.

IdTežinaPorukaOpis
M1GreškaNeispravna vrijednost za enum
M2GreškaVrijednost enuma mora biti niz ili broj
M3GreškaOčekivana vrijednost broja
M4GreškaOčekivana vrijednost Boolean
M5GreškaOčekivana vrijednost niza
M6GreškaNeispravan URL
M7UpozorenjeDatoteka ili direktorij ne postoje
M8GreškaNeispravna boja
M9GreškaOčekuje se sidrena linija
M10GreškaPonovljeno vezanje svojstvaZa više informacija pogledajte duplicirani ključ '{a}' u Objašnjenjima pogrešaka JSLinta.
M11GreškaOčekivan identifikatorZa više informacija pogledajte " Očekivao se identifikator, a umjesto toga je viđen '{a}' (rezervirana riječ)" u Objašnjenjima pogrešaka JSLinta.
M14GreškaNeispravan identifikatorZa više informacija pogledajte: Očekivan je identifikator, a umjesto toga je viđeno '{a}' (rezervirana riječ).
M15GreškaDuplikatni IDID-ovi u datoteci moraju biti jedinstveni. Za više informacija pogledajte: Duplicirani ključ '{a}'.
M16GreškaNeispravan naziv svojstva name
M17GreškaName nema članova
M18GreškaField nije član object
M19UpozorenjeDodjela u uvjetuMogla bi biti tipičarska pogreška. Ako je namjerna, okružite dodjelu zagradama.
M20UpozorenjeNeiscrpljivi blok slučajaBlokovi 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.
M23UpozorenjeNe koristite evalZa više informacija pogledajte eval is evil u JSLint objašnjenjima pogrešaka.
M28UpozorenjeNepristupačnoUkazuje da podcrtana izjava nikada neće biti izvršena.
M29UpozorenjeNe koristiti withZa više informacija pogledajte Unexpected 'with' in JSLint Error Explanations.
M30UpozorenjeNe koristite izraze s zarezom
M31UpozorenjeNepotrebno potiskivanje poruka
M103UpozorenjeName je već formalni parametar
M104UpozorenjeName je već funkcija
M105UpozorenjeVar name se koristi prije njegove deklaracije
M106UpozorenjeName var je već deklariran
M107UpozorenjeName deklarirana je više putaVarijable 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.
M108UpozorenjeFunkcija name je korištena prije svoje deklaracijeZa više informacija, pogledajte {a} je korišten prije nego što je definiran u Objašnjenjima pogrešaka JSLinta.
M109UpozorenjeNe koristite Boolean kao konstruktorZa više informacija pogledajte Ne koristite {a} kao konstruktor u JSLint objašnjenjima pogrešaka.
M110UpozorenjeNe koristite String kao konstruktorZa više informacija pogledajte Ne koristite {a} kao konstruktor.
M111UpozorenjeNe koristite Object kao konstruktorZa više informacija pogledajte Ne koristite {a} kao konstruktor.
M112UpozorenjeNe koristite Array kao konstruktorZa više informacija pogledajte Ne koristite {a} kao konstruktor.
M113UpozorenjeNe koristite Function kao konstruktorZa više informacija pogledajte Ne koristite {a} kao konstruktor.
M114SavjetKljučna riječ function i otvoreni zagrljaj trebali bi biti odvojeni jednim razmakomZa više informacija pogledajte " Očekuje se točno jedan razmak između {a} i {b} " u Objašnjenjima pogrešaka JSLinta.
M115UpozorenjeNe koristite samostalne blokoveBlokovi ne utječu na opseg varijabli. Stoga blokovi koji nisu povezani s if, while itd. nemaju učinka i treba ih izbjegavati.
M116UpozorenjeNe koristite izraze void
M117UpozorenjeZbunjući pluseviZa više informacija pogledajte poglavlje " Confusing pluses " u Objašnjenjima pogrešaka JSLinta.
M119UpozorenjeZbunujuće minusiZa više informacija pogledajte Zbunjuće minuse u objašnjenjima pogrešaka JSLinta.
M121SavjetDeklarirajte sve varijable funkcija na jednom retku
M123SavjetNepotrebni zagrade
M126Upozorenje== i != mogu izvršiti konverziju tipa, koristite === ili !== kako biste to izbjegliNe-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.
M127UpozorenjeIzrazi u izjavama trebaju biti samo dodjeljivanja, pozivi ili izrazi za brisanje
M128GreškaStanje ne može imati navedenu podređenu stavku
M129GreškaTip se ne može instancirati rekursivno
M201SavjetPostavite deklaracije var na početak funkcijeZa više informacija pogledajte premjestite deklaracije 'var' na vrh funkcije u Objašnjenjima pogrešaka JSLinta.
M202SavjetKoristite samo jednu izjavu po retku
M203UpozorenjeImperativni kod nije podržan u Qt Quick Designeru
M204UpozorenjeOva QML vrsta nije podržana u Qt Quick Designeru
M205UpozorenjeReferenca na roditeljsku QML vrstu ne može se ispravno riješiti u Qt Quick Designeru
M206UpozorenjeOvo 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
M207UpozorenjeQt Quick Designer podržava samo stanja u korijenskom QML tipu
M208GreškaOvaj ID može biti dvosmislen i nije podržan u Qt Quick Designeru
M209GreškaOva vrsta (naziv vrste) nije podržana kao korijenski element u Qt Quick Designer
M220GreškaOva 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.
M221GreškaOva vrsta (naziv vrste) nije podržana u UI datoteci (.ui.qml)Za više informacija o podržanim QML tipovima pogledajte UI datoteke.
M222GreškaFunkcije nisu podržane u UI datoteci (.ui.qml)Za popis podržanih JavaScript funkcija pogledajte Podržane metode.
M223GreškaJavaScript blokovi nisu podržani u UI datoteci (.ui.qml)Za više informacija o podržanim značajkama pogledajte UI datoteke.
M224GreškaTip ponašanja nije podržan u UI datoteci (.ui.qml)Za više informacija o podržanim QML tipovima pogledajte UI datoteke.
M225GreškaStanja su podržana samo u korijenskom elementu u UI datoteci (.ui.qml)Za više informacija o podržanim značajkama pogledajte UI datoteke.
M226GreškaReferenciranje roditelja korijenskog elementa nije podržano u UI datoteci (.ui.qml)Za više informacija o podržanim značajkama pogledajte UI datoteke.
M227GreškaNemojte 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.
M300GreškaNepoznata komponenta
M301GreškaNije moguće riješiti prototip name object
M302GreškaNije moguće riješiti prototip name
M303GreškaPrototipni ciklus, posljednja ne-ponovljena komponenta je name
M304GreškaNeispravan tip svojstva name
M305Upozorenje== i != izvode prisilnu konverziju tipova, koristite === ili !== da je izbjegneteVidi M126.
M306UpozorenjePozivi funkcija koje započinju velikim slovom trebali bi koristiti newPrema konvenciji, funkcije koje počinju velikim slovom su konstruktorske funkcije koje se smiju koristiti samo s new.
M307UpozorenjeKoristite new samo za funkcije koje započinju velikim slovomZa više informacija pogledajte Do not use {a} as a constructor in JSLint Error Explanations.
M308UpozorenjeNe koristite Number kao konstruktorZa više informacija pogledajte Ne koristite {a} kao konstruktor.
M309SavjetKoristite razmake oko binarnih operatora
M310UpozorenjeNeželjeni prazan blok, koristite ({}) za prazan objektni literal
M311SavjetKoristite type umjesto var ili variant za poboljšanje performansi
M312GreškaFali svojstvo number
M313GreškaOčekivana vrijednost objekta
M314GreškaOčekivana vrijednost niza
M315GreškaValue očekivana vrijednost
M316GreškaMaksimalna vrijednost broja je number
M317GreškaMinimalna vrijednost broja je number
M318GreškaMaksimalna vrijednost broja je ekskluzivna
M319GreškaMinimalna vrijednost broja je ekskluzivna
M320GreškaTekstualna vrijednost ne odgovara zahtijevanom uzorku
M321GreškaMinimalna duljina vrijednosti niza je number
M322GreškaMaksimalna duljina vrijednosti niza je number
M323GreškaNumber u vrijednosti niza očekuju se elementiZa više informacija pogledajte bilješku "[] je poželjnija notacija nizovih literalnih vrijednosti" u objašnjenjima pogrešaka JSLint-a.
M324GreškaDostižena je maksimalna granica rekurzije pri posjetu AST-u, model koda bit će nepouzdan i najvjerojatnije neispravan
M326GreškaKomponentama je dopušteno imati samo jedan podređeni elementZa više informacija pogledajte Component.
M327UpozorenjeKomponente zahtijevaju podređeni elementZa više informacija pogledajte Component.
M400UpozorenjeDuplikat uvozaIzjava o uvozu je dodana dvaput. Za više informacija pogledajte Izjave o uvozu.
M401GreškaNemojte referencirati korijenski element kao aliasSvojstvo alias ne može izravno referencirati korijensku komponentu. Umjesto toga stvorite instancu komponente.
M402UpozorenjeIzbjegavajte referenciranje korijenskog elementa u hijerarhijiSvojstvo alias ne može referencirati korijensku komponentu u hijerarhiji. Umjesto toga stvorite instancu komponente.
M403GreškaUslovna klauza 'when' ne može sadržavati objektPostavite 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.