이 페이지에서

JavaScript 및 QML 검사

프로젝트의 QML 및 JavaScript 코드에서 정적 검사를 실행하여 일반적인 문제를 찾아보세요.

정적 검사를 실행하려면 Tools > QML/JS > Run Checks 로 이동하거나 Ctrl+Shift+C를 선택하세요.

이슈의 QMLQML Analysis 필터에서 결과를 확인합니다.

참고: 프로젝트에 대해 QML Language Server 을 켜면 QML 및 JavaScript 코드를 검사하고 경고를 생성하는 데 qmllint를 사용하므로 오류 코드 및 메시지가 JavaScript 및 QML 오류 코드의 그것과 다릅니다.

메시지 활성화 및 비활성화

정적 분석기의 QML 및 JavaScript 메시지를 활성화 및 비활성화하려면 다음과 같이 하세요:

  1. 환경설정 > > Qt Quick > QML/JS Editing 로 이동합니다.
  2. Use customized static analyzer 을 선택합니다.

    Qt Quick 환경설정의 QML/JS 편집 탭

  3. Enabled 에서 표시할 메시지를 선택합니다.
  4. Qt Quick UI 파일에 대해서만 특정 메시지를 표시하려면 다음에서 해당 메시지를 선택합니다. Only for Qt Quick UI. Qt Quick UI 파일이 아닌 파일에 대해서만 메시지를 표시할 수는 없습니다.

JavaScript 및 QML 오류 코드

대부분의 오류 메시지는 Douglas Crockford의 JSLint 도구의 오류 메시지와 유사합니다. JSLint 오류에 대한 자세한 내용은 JSLint 오류 설명을 참조하세요.

Id심각도메시지설명
M1오류열거형에 잘못된 값입니다.
M2오류열거형 값은 문자열 또는 숫자여야 합니다.
M3오류예상되는 숫자 값입니다.
M4오류예상되는 부울 값
M5오류예상되는 문자열 값
M6오류잘못된 URL
M7경고파일 또는 디렉토리가 존재하지 않습니다.
M8오류잘못된 색상
M9오류앵커 라인 예상
M10오류중복 속성 바인딩자세한 내용은 JSLint 오류 설명에서 중복 키 '{a}' 를 참조하세요.
M11오류예상된 식별자자세한 내용은 JSLint 오류 설명에서 식별자가 예상되었으나 대신 '{a}'(예약어) 가 표시됨을 참조하세요.
M14오류잘못된 ID자세한 내용은 식별자가 예상되었으나 대신 '{a}'(예약어)가 표시됨을 참조하세요.
M15오류중복 ID파일의 ID는 고유해야 합니다. 자세한 내용은 중복 키 '{a}'를 참조하세요.
M16오류잘못된 속성 이름입니다. name
M17오류Name 멤버가 없습니다.
M18오류Field 의 멤버가 아닙니다. object
M19경고조건에 할당입력 오류일 수 있습니다. 의도적인 오류인 경우 괄호로 대입을 묶으세요.
M20경고종료되지 않은 비어 있지 않은 대/소문자 블록대/소문자 블록은 비어 있거나 break, return 또는 continue 와 같은 흐름 제어 문으로 끝나야 합니다. 또는 // fall through 주석으로 끝내어 의도적인 탈락을 나타낼 수도 있습니다.
M23경고사용하지 마세요. eval자세한 내용은 JSLint 오류 설명에서 평가는 악이다를 참조하세요.
M28Warning연결할 수 없음밑줄 친 문이 실행되지 않음을 나타냅니다.
M29경고Do not use with자세한 내용은 JSLint 오류 설명에서 예기치 않은 'with'를 참조하세요.
M30경고쉼표 표현식을 사용하지 마십시오.
M31경고불필요한 메시지 억제
M103경고Name 은 이미 공식적인 매개변수입니다.
M104WarningName 는 이미 함수입니다
M105경고name 이 선언 전에 사용되었습니다.
M106경고Name 이미 var입니다
M107경고Name 가 두 번 이상 선언된 경우함수에서 선언된 변수는 중첩된 블록이나 for 문 조건에서 선언된 경우에도 함수의 모든 곳에서 항상 표시됩니다. 변수를 다시 선언해도 효과가 없습니다.
M108경고name 함수가 선언 앞에 사용됨자세한 내용은 JSLint 오류 설명에서 {a}가 정의되기 전에 사용됨을 참조하세요.
M109경고Boolean 을 생성자로 사용하지 마세요.자세한 내용은 JSLint 오류 설명에서 {a}를 생성자로 사용하지 마십시오 를 참조하세요.
M110경고String 를 생성자로 사용하지 마세요.자세한 내용은 {a}를 생성자로 사용하지 마십시오를 참조하세요.
M111경고Object 를 생성자로 사용하지 마세요.자세한 내용은 {a}를 생성자로 사용하지 마세요를 참조하세요.
M112경고Array 를 생성자로 사용하지 마세요.자세한 내용은 {a}를 생성자로 사용하지 마십시오를 참조하세요.
M113경고Function 를 생성자로 사용하지 마세요.자세한 내용은 {a}를 생성자로 사용하지 마세요를 참조하세요.
M114Hintfunction 키워드와 여는 괄호는 한 공백으로 구분해야 합니다.자세한 내용은 JSLint 오류 설명에서 {a}와 {b} 사이에 정확히 하나의 공백이 예상됨을 참조하세요.
M115경고독립형 블록을 사용하지 마십시오.블록은 변수 범위 지정에 영향을 주지 않습니다. 따라서 if, while 등에 연결되지 않은 블록은 효과가 없으므로 피해야 합니다.
M116경고무효 표현식을 사용하지 마세요.
M117경고혼동되는 플러스자세한 내용은 JSLint 오류 설명에서 혼동되는 플러스를 참조하십시오.
M119경고혼동되는 마이너스자세한 내용은 JSLint 오류 설명에서 혼동되는 마이너스를 참조하십시오.
M121Hint모든 함수 변수를 한 줄에 선언하세요.
M123Hint불필요한 괄호
M126경고==!= 는 타입 강제를 수행할 수 있으므로 이를 방지하려면 === 또는 !== 를 사용하세요.비엄격 동일성 비교는 인수를 공통 유형으로 변환할 수 있습니다. 이로 인해 ' \t\r\n' == 0 가 참이 되는 등 예기치 않은 결과가 발생할 수 있습니다. 엄격한 등호 연산자 ===!== 를 사용하고 필요한 변환에 대해 명시하세요.
M127경고표현식 문은 할당, 호출 또는 삭제 표현식만 사용해야 합니다.
M128오류상태는 지정된 하위 항목을 가질 수 없습니다.
M129오류유형을 재귀적으로 인스턴스화할 수 없습니다.
M201Hint함수 시작 부분에 var 선언을 배치하세요.자세한 내용은 JSLint 오류 설명에서 'var' 선언을 함수 맨 위로 이동을 참조하세요.
M202Hint한 줄에 하나의 문만 사용
M220오류이 유형(유형 이름)은 UI 파일의 루트 요소로 지원되지 않습니다(.ui.qml).지원되는 QML 유형에 대한 자세한 내용은 UI 파일을 참조하세요.
M221오류이 유형(유형 이름)은 UI 파일에서 지원되지 않습니다(.ui.qml).지원되는 QML 유형에 대한 자세한 내용은 UI 파일을 참조하세요.
M222오류UI 파일에서 함수가 지원되지 않습니다(.ui.qml).지원되는 JavaScript 함수 목록은 지원되는 메서드를 참조하세요.
M223오류UI 파일에서 자바스크립트 블록이 지원되지 않습니다(.ui.qml).지원되는 기능에 대한 자세한 내용은 UI 파일을 참조하세요.
M224오류UI 파일에서 동작 유형이 지원되지 않습니다(.ui.qml).지원되는 QML 유형에 대한 자세한 내용은 UI 파일을 참조하세요.
M225오류상태는 UI 파일의 루트 항목에서만 지원됩니다(.ui.qml).지원되는 기능에 대한 자세한 내용은 UI 파일을 참조하세요.
M226오류UI 파일에서 루트 항목의 부모를 참조하는 것은 지원되지 않습니다(.ui.qml).지원되는 기능에 대한 자세한 내용은 UI 파일을 참조하세요.
M227오류UI 파일에 번역 기능을 혼합하지 마세요 (.ui.qml)qsTr, qsTrId 등 여러 가지 번역 함수가 지원되더라도 한 가지를 선택하여 UI 파일 내에서 일관되게 사용해야 합니다. 자세한 내용은 Qt Qml 메서드를 참조하세요.
M300에러알 수 없는 구성 요소
M301오류name 의 프로토타입을 확인할 수 없습니다. object
M302오류프로토타입을 확인할 수 없습니다. name
M303오류프로토타입 주기, 마지막으로 반복되지 않은 구성 요소는 name
M304오류잘못된 프로퍼티 유형 name
M305경고==!= 유형 강제를 수행하면 === 또는 !== 을 사용하여 이를 방지합니다.M126을 참조하십시오.
M306경고대문자로 시작하는 함수 호출은 다음을 사용해야 합니다. new관례에 따라 대문자로 시작하는 함수는 new 와 함께 사용해야 하는 생성자 함수입니다.
M307경고대문자로 시작하는 함수에는 new 만 사용하십시오.자세한 내용은 JSLint 오류 설명에서 {a}를 생성자로 사용하지 마십시오를 참조하세요.
M308경고Number 을 생성자로 사용하지 마세요.자세한 내용은 {a}를 생성자로 사용하지 마십시오를 참조하세요.
M309Hint이진 연산자 주위에 공백 사용
M310경고의도하지 않은 빈 블록, 빈 객체 리터럴에 ({}) 사용
M311Hint성능 향상을 위해 var 또는 variant 대신 type 사용
M312오류누락된 속성 number
M313오류예상되는 객체 값
M314오류예상되는 배열 값
M315오류Value 예상된 값
M316오류최대 숫자 값은 number
M317오류최소 숫자 값은 number
M318오류최대 숫자 값이 배타적입니다.
M319오류최소 숫자 값이 배타적입니다.
M320오류문자열 값이 필수 패턴과 일치하지 않습니다.
M321오류최소 문자열 값 길이가 number
M322오류최대 문자열 값 길이가 number
M323오류Number 배열 값에 예상되는 요소자세한 내용은 JSLint 오류 설명에서 배열 리터럴 표기법 []이 바람직합니다를 참조하십시오.
M324오류AST를 방문하는 최대 재귀 제한에 도달하면 코드 모델이 신뢰할 수 없고 유효하지 않을 가능성이 높습니다.
M326오류컴포넌트에는 하나의 하위 요소만 허용됩니다.자세한 내용은 Component 을 참조하세요.
M327경고컴포넌트에 자식 요소가 필요합니다.자세한 내용은 Component 을 참조하십시오.
M400경고중복 가져오기가져오기 문이 두 번 추가되었습니다. 자세한 내용은 가져오기 문을 참조하세요.
M401오류루트 항목을 별칭으로 참조하지 마십시오.별칭 속성은 루트 컴포넌트를 직접 참조할 수 없습니다. 대신 컴포넌트의 인스턴스를 생성하세요.
M402경고계층 구조에서 루트 항목을 참조하지 마세요.별칭 속성은 계층 구조에서 루트 컴포넌트를 참조할 수 없습니다. 대신 컴포넌트의 인스턴스를 생성하세요.
M403오류언제 조건에 객체가 포함될 수 없음when 조건을 조건이 충족될 때 true 로 평가되는 표현식으로 설정하세요.

코드 모델 재설정하기

새 QML 모듈을 추가한 후 다음과 같은 오류 메시지가 표시되면 프로젝트를 빌드한 다음 코드 모델을 재설정해 보세요:

  • QML 모듈을 찾을 수 없습니다.
  • 알 수 없는 구성 요소(M300).

오류 메시지를 보려면 코드 편집기에서 Qt Creator 에 밑줄이 그어진 코드 위로 마우스 포인터를 이동하거나 Qt Design Studio 에서 QML 파일을 열면 됩니다.

코드 모델을 재설정하려면 Tools > QML/JS > Reset Code Model 을 선택합니다.

코드 구문 확인, 플러그인과 함께 QML 모듈 사용하기코드 분석하기를참조하세요 .

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.