JavaScript 및 QML 검사
프로젝트의 QML 및 JavaScript 코드에서 정적 검사를 실행하여 일반적인 문제를 찾아보세요.
정적 검사를 실행하려면 Tools > QML/JS > Run Checks 로 이동하거나 Ctrl+Shift+C를 선택하세요.
이슈의 QML 및 QML Analysis 필터에서 결과를 확인합니다.
참고: 프로젝트에 대해 QML Language Server 을 켜면 QML 및 JavaScript 코드를 검사하고 경고를 생성하는 데 qmllint를 사용하므로 오류 코드 및 메시지가 JavaScript 및 QML 오류 코드의 그것과 다릅니다.
메시지 활성화 및 비활성화
정적 분석기의 QML 및 JavaScript 메시지를 활성화 및 비활성화하려면 다음과 같이 하세요:
- 환경설정 > > Qt Quick > QML/JS Editing 로 이동합니다.
- Use customized static analyzer 을 선택합니다.

- Enabled 에서 표시할 메시지를 선택합니다.
- 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 오류 설명에서 평가는 악이다를 참조하세요. |
| M28 | Warning | 연결할 수 없음 | 밑줄 친 문이 실행되지 않음을 나타냅니다. |
| M29 | 경고 | Do not use with | 자세한 내용은 JSLint 오류 설명에서 예기치 않은 'with'를 참조하세요. |
| M30 | 경고 | 쉼표 표현식을 사용하지 마십시오. | |
| M31 | 경고 | 불필요한 메시지 억제 | |
| M103 | 경고 | Name 은 이미 공식적인 매개변수입니다. | |
| M104 | Warning | Name 는 이미 함수입니다 | |
| 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}를 생성자로 사용하지 마세요를 참조하세요. |
| M114 | Hint | function 키워드와 여는 괄호는 한 공백으로 구분해야 합니다. | 자세한 내용은 JSLint 오류 설명에서 {a}와 {b} 사이에 정확히 하나의 공백이 예상됨을 참조하세요. |
| M115 | 경고 | 독립형 블록을 사용하지 마십시오. | 블록은 변수 범위 지정에 영향을 주지 않습니다. 따라서 if, while 등에 연결되지 않은 블록은 효과가 없으므로 피해야 합니다. |
| M116 | 경고 | 무효 표현식을 사용하지 마세요. | |
| M117 | 경고 | 혼동되는 플러스 | 자세한 내용은 JSLint 오류 설명에서 혼동되는 플러스를 참조하십시오. |
| M119 | 경고 | 혼동되는 마이너스 | 자세한 내용은 JSLint 오류 설명에서 혼동되는 마이너스를 참조하십시오. |
| M121 | Hint | 모든 함수 변수를 한 줄에 선언하세요. | |
| M123 | Hint | 불필요한 괄호 | |
| M126 | 경고 | == 와 != 는 타입 강제를 수행할 수 있으므로 이를 방지하려면 === 또는 !== 를 사용하세요. | 비엄격 동일성 비교는 인수를 공통 유형으로 변환할 수 있습니다. 이로 인해 ' \t\r\n' == 0 가 참이 되는 등 예기치 않은 결과가 발생할 수 있습니다. 엄격한 등호 연산자 === 및 !== 를 사용하고 필요한 변환에 대해 명시하세요. |
| M127 | 경고 | 표현식 문은 할당, 호출 또는 삭제 표현식만 사용해야 합니다. | |
| M128 | 오류 | 상태는 지정된 하위 항목을 가질 수 없습니다. | |
| M129 | 오류 | 유형을 재귀적으로 인스턴스화할 수 없습니다. | |
| M201 | Hint | 함수 시작 부분에 var 선언을 배치하세요. | 자세한 내용은 JSLint 오류 설명에서 'var' 선언을 함수 맨 위로 이동을 참조하세요. |
| M202 | Hint | 한 줄에 하나의 문만 사용 | |
| 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}를 생성자로 사용하지 마십시오를 참조하세요. |
| M309 | Hint | 이진 연산자 주위에 공백 사용 | |
| M310 | 경고 | 의도하지 않은 빈 블록, 빈 객체 리터럴에 ({}) 사용 | |
| M311 | Hint | 성능 향상을 위해 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.