이 페이지에서

호환되지 않는 유형

qmllint에서는 이 경고 범주를 ‘ [incompatible-type] ’로 표기합니다.

호환되지 않는 유형의 기본 속성에 할당할 수 없음

무슨 일이 발생했나요?

호환되지 않는 유형의 기본 속성에 객체를 할당했습니다.

왜 문제가 됩니까?

QML 엔진은 런타임에 해당 객체를 할당할 수 없습니다.

예시

import QtQuick

Item {
    component MyType: QtObject {
        default property list<Item> myDefaultProperty
    }

    MyType {
        QtObject {} // note: QtObject does not inherit from Item
    }
}

이 경고를 해결하려면, 속성에 호환되는 유형을 바인딩하거나, 해당 기본 속성의 작성자인 경우 정의에서 유형을 변경하십시오:

import QtQuick

Item {
    component MyType: QtObject {
        default property list<Item> myDefaultProperty
    }

    MyType {
        Item {}
    }

    component AlternativeMyType: QtObject {
        default property list<QtObject> myDefaultProperty
    }

    AlternativeMyType {
        QtObject {} // is ok for AlternativeMyType
    }
}

속성의 바인딩 시 유형이 잘못되었습니다

무슨 일이 일어났나요?

유효하지 않은 속성 수정자 유형을 사용했습니다.

왜 문제가 될까요?

QML 엔진은 런타임 시 해당 속성 수정자 유형을 사용할 수 없습니다.

예시

import QtQuick

Item {
    property int xxx
    Item on xxx { ... }
}

이 경고를 해결하려면 ` on `를 제거하거나 유효한 속성 수정자 유형을 사용하십시오:

import QtQuick

Item {
    property int xxx
    Item { ... }

    // Alternative: use a valid property modifier type
    NumberAnimation on xxx { ... }
}

문자열을 통한 생성 방식은 더 이상 권장되지 않습니다. 대신 구조화된 값 유형 생성을 사용하십시오.

무슨 일이 발생했나요?

문자열을 사용하여 QML_STRUCTURED_VALUE 를 생성했습니다.

왜 문제가 될까요?

이 방법은 더 이상 권장되지 않으며 오타가 발생하기 쉽습니다.

예시

import QtQuick

Item {
    property point p: "5, 6"
}

이 경고를 해결하려면, 속성에 문자열을 바인딩하는 대신 ‘ QML_STRUCTURED_VALUE ’ 설명에 나와 있는 대로 구조화된 값 유형을 할당하세요:

import QtQuick

Item {
    property point p: ({ x: 5, y: 6 })
}

반환 유형 주석이 없는 함수는 반환합니다

무슨 일이 일어난 건가요?

반환 유형 주석이 없는 함수에서 값을 반환했습니다.

왜 문제가 될까요?

함수가 아무것도 반환하지 않도록 주석을 달았으므로, 함수는 실제로 아무것도 반환해서는 안 됩니다. QML 툴링은 해당 메서드를 처리할 수 없으며, 향후 Qt 버전에서는 QML 엔진이 반환된 값을 무시하게 될 것입니다.

예시

import QtQuick

Item {
    function f(x: int) {
        ...
        return x
    }
}

이 경고를 해결하려면 함수 시그니처를 새로운 반환 유형에 맞게 수정하거나 반환 값을 제거하십시오:

import QtQuick

Item {
    function f(x: int): int {
        ...
        return x
    }
    function alternativeF(x: int) {
        ...
        return
    }
}

바인딩/객체/리터럴을 할당할 수 없음

무슨 일이 발생했나요?

호환되지 않는 유형의 속성에 객체, 리터럴 또는 표현식을 바인딩했습니다.

왜 문제가 될까요?

QML 엔진은 런타임 시 해당 객체, 리터럴 또는 표현식을 할당할 수 없습니다.

예시

import QtQuick

Item {
    property date xxx: 42
}

이 경고를 해결하려면 호환되는 유형의 객체, 값 또는 표현식을 바인딩하십시오:

import QtQuick

Item {
    property date xxx: new Date()
}

© 2026 The Qt Company Ltd. 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.