IT박스

Typescript를 사용할 때 "property does not exist on type JQuery"구문 오류를 어떻게 막을 수 있습니까?

itboxs 2020. 11. 16. 07:59
반응형

Typescript를 사용할 때 "property does not exist on type JQuery"구문 오류를 어떻게 막을 수 있습니까?


내 응용 프로그램에서 한 줄의 jQuery 만 사용하고 있습니다.

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

그러나 이것은 나에게 Typescript 오류를 제공합니다.

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

누군가가이 오류가 나타나는 것을 막을 수있는 방법을 말해 줄 수 있습니까?


<any>자신의 메소드를 추가하기 위해 jquery 타이핑을 캐스트 하거나 확장 할 수 있습니다.

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

// 또는 사용자 지정 메서드를 추가합니다 (사용자 지정 플러그인의 일부로 사용자가 직접 추가했다고 가정).

interface JQuery {
    printArea():void;
}

나는 이것이 가장 읽기 쉬운 해결책이라고 생각합니다.

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

캐스트 할 수 있습니다.

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

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

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

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

interface JQuery{
    printArea():void;
}

편집 : 죄송합니다, basarat은 아래에 정확합니다. 왜 컴파일이라고 생각했는지 모르겠지만이 답변을 업데이트했습니다.


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

jquery.printArea.ts 정의 파일을 만들어야합니다.

플러그인에 대한 완전한 정의 파일을 생성하는 경우이를 DefinitelyTyped 에 제출할 수 있습니다 .


다음과 같이 작성할 수도 있습니다.

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

반응형