prosource

Typescript를 사용할 때 "property is not exist on type JQuery" 구문 오류를 중지하려면 어떻게 해야 합니까?

probook 2023. 9. 15. 21:08
반응형

Typescript를 사용할 때 "property is not exist on type JQuery" 구문 오류를 중지하려면 어떻게 해야 합니까?

애플리케이션에서 jQuery의 한 줄만 사용하고 있습니다.

$("div.printArea").printArea();

하지만 이로 인해 타이프스크립트 오류가 발생합니다.

JQuery 유형에 'printArea' 속성이 존재하지 않습니까?

누가 이 오류가 나타나지 않게 하려면 어떻게 해야 하는지 알려주실 수 있나요?

당신은 그것을 캐스팅 할 수 있습니다.<any>또는 jquery type을 확장하여 자신만의 메서드를 추가합니다.

 (<any>$("div.printArea")).printArea();

또는 사용자 지정 방법을 추가합니다(사용자 지정 플러그인의 일부로 사용자 지정 방법 추가).

declare global {
    interface JQuery {
        printArea(): void;
    }
}

이것이 가장 가독성이 높은 해결책이라고 생각합니다.

($("div.printArea") as any).printArea();

캐스팅 가능합니다.

(<any>$('.selector') ).function();

Ex: jquery를 사용하여 날짜 선택기 초기화

(<any>$('.datepicker') ).datepicker();

ignore 구문을 사용하거나 'as any' 표기 대신 사용할 수도 있습니다.

// @ts-ignore
$("div.printArea").printArea();

예를 들어 다음을 추가합니다.

interface JQuery{
    printArea():void;
}

편집: 아, 아래에 basarat가 맞습니다.제가 왜 컴파일링이라고 생각했는지는 모르겠지만 이 답변을 업데이트했습니다.

printArea는 jQuery 플러그인이므로 jquery.d.ts에는 포함되지 않습니다.

jquery.printArea.ts 정의 파일을 생성해야 합니다.

플러그인에 대한 완전한 정의 파일을 만든 경우 Definitely에 제출할 수 있습니다.타이핑.

다음과 같이 쓸 수도 있습니다.

let elem: any;
elem = $("div.printArea");
elem.printArea();

언급URL : https://stackoverflow.com/questions/24984014/how-can-i-stop-property-does-not-exist-on-type-jquery-syntax-errors-when-using

반응형