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 poruka 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 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 sidarna 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 ne ima članove
M18GreškaField nije član object
M19UpozorenjeDodjeljivanje u uvjetuMožda je riječ o tipičnoj pogrešci. Ako je namjerno, okružite dodjelu zagradama.
M20UpozorenjeNeiscrpljivi blok slučajaBlokovi slučaja 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 se koristi prije njezine 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 Objašnjenjima pogrešaka JSLint.
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 zagrad 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
M117UpozorenjeZbunjući pluseviZa više informacija pogledajte Zbunjenje plusova u Objašnjenjima pogrešaka JSLinta.
M119UpozorenjeZbunujuće minusiZa više informacija pogledajte Zbunujuće minuse u objašnjenjima pogrešaka JSLinta.
M121SavjetDeklarirajte sve varijable funkcija na jednoj liniji
M123SavjetNepotrebni zagradi
M126Upozorenje== i != mogu izvršiti prisilnu konverziju tipova, koristite === ili !== kako biste to izbjegliNeograničeno 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 budite eksplicitni u vezi s konverzijama koje zahtijevate.
M127UpozorenjeIzrazi u izrazima 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 roditeljski QML tip 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š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 od object
M302GreškaPrototip nije uspio biti riješen name
M303GreškaPrototipni ciklus, posljednja ne-ponovljena komponenta je name
M304GreškaNeispravan tip svojstva name
M305Upozorenje== i != izvršavaju konverziju tipa, koristite === ili !== da je izbjegneteVidi M126.
M306UpozorenjePozivi funkcija koje započinju velikim slovom trebali bi koristiti newPrema konvenciji, funkcije koje započinju velikim slovom su konstruktorske funkcije koje se trebaju 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, upotrijebite ({}) 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 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 Objašnjenja pogrešaka u JSLintu: notacija nizovog literalnog izraza [] je poželjnija.
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 u when u na izraz koji se vrednuje kao 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.
  • Nepriznata 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.