Na ovoj stranici

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:

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

     kartica za uređivanje QML/JS u postavkama Qt Quicka

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

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 sidarna uzica
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 viđen je '{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đen '{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 uvjetuMožda je riječ o tipičkoj pogrešci. Ako je namjerno, stavite dodjelu u zagrade.
M20UpozorenjeNeiscrpni blok slučajaBlokovi 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.
M23UpozorenjeNemojte koristiti 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 suzbijanje poruka
M103UpozorenjeName je već formalni parametar
M104UpozorenjeName je već funkcija
M105UpozorenjeVar name se koristi prije njegove deklaracije
M106UpozorenjeName var je već deklariran
M107UpozorenjeName je deklarirana više od jednomVarijable 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.
M108UpozorenjeFunkcija name se koristi prije njezine deklaracijeZa više informacija, pogledajte {a} je korišten prije nego što je definiran u Objašnjenjima pogrešaka JSLint-a.
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 Nemojte koristiti {a} kao konstruktor.
M112UpozorenjeNe koristite Array kao konstruktorZa više informacija pogledajte Nemojte koristiti {a} kao konstruktor.
M113UpozorenjeNe koristite Function kao konstruktorZa više informacija pogledajte Nemojte koristiti {a} kao konstruktor.
M114SavjetKljučna riječ function i otvoreni zagrade 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.
M115UpozorenjeNemojte koristiti 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
M117UpozorenjeZbunjenje plusevaZa više informacija pogledajte poglavlje " Confusing pluses " u Objašnjenjima pogrešaka JSLinta.
M119UpozorenjeZbunjući minusiZa više informacija pogledajte Zbunjuće minuse u objašnjenjima pogrešaka JSLinta.
M121SavjetDeklarirajte sve varijable funkcija na jednoj liniji
M123SavjetNepotrebni zagrade
M126Upozorenje== i != mogu izvršiti konverziju tipa, koristite === ili !== da to izbjegneteUsporedba 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.
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
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škaNe 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.
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 koerciju tipa, 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 bi se trebale 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
M310UpozorenjeNehotično 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škaVrijednost niza ne odgovara traženom obrascu
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 " Notacija nizovog doslovnog izraza [] je poželjnija " u JSLint objašnjenjima pogrešaka.
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škaUslov 'when' ne može sadržavati objektPostavite 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.