내 응용 프로그램에서 한 줄의 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();
답변
표기법을 사용하는 대신에 무시 구문을 사용할 수도 있습니다.
// @ts-ignore
$("div.printArea").printArea();