내 응용 프로그램에서 한 줄의 jQuery 만 사용하고 있습니다.
$("div.printArea").printArea();
그러나 이것은 나에게 Typescript 오류를 제공합니다.
속성 'printArea'가 JQuery 유형에 존재하지 않습니까?
누군가가이 오류가 나타나는 것을 막을 수있는 방법을 말해 줄 수 있습니까?
답변:
<any>자신의 메소드를 추가하기 위해 jquery 타이핑을 캐스트 하거나 확장 할 수 있습니다.
(<any>$("div.printArea")).printArea();
// 또는 사용자 지정 메서드를 추가합니다 (사용자 지정 플러그인의 일부로 직접 추가되었다고 가정).
interface JQuery {
printArea():void;
}
interface JQuery외부 모듈에서 방법 을 시도하고 함수 매개 변수를 JQuery 유형으로 정의하고 다른 파일에서 호출하려고 시도하면 TypeScript는 관련되지 않은 JQuery라는 두 가지 유형이 있다고 불평합니다.
declare global { ... }하고 인터페이스 선언이 필요하다는 것을 깨달았습니다 .
예를 들어 다음을 추가합니다.
interface JQuery{
printArea():void;
}
편집 : 죄송합니다, basarat은 아래에 정확합니다. 왜 컴파일한다고 생각했는지 모르겠지만이 답변을 업데이트했습니다.
$.inviewport(el)Ops 케이스$('selector').printArea
$('selector').printArea컴파일? 나는 그렇게 생각하지 않는다. $.printArea그래도 컴파일됩니다. 악의 촬영하거나 :) 구성, 그래서 당신은 매우 정중되었습니다
printArea는 jQuery 플러그인이므로 jquery.d.ts에 포함되지 않습니다.
jquery.printArea.ts 정의 파일을 생성해야합니다.
플러그인에 대한 완전한 정의 파일을 만들면 DefinitelyTyped 에 제출할 수 있습니다 .
Error:(44, 23) TS2339: Property 'printArea' does not exist on type 'ElementFinder'.