2016-07-31 19 views
4

Bisher habe ich hinzugefügt Erweiterungsmethoden JQuery wie folgt aus:.Extend JQueryStatic mit Typoskript

module JQueryExtensions { 
    export function foo() { 
     ... 
    } 
} 
interface JQuery { 
    foo(): JQuery; 
} 
(function ($) { 
    $.fn.foo = function(): JQuery { 
    ... 
    return this; 
    }; 
})(jQuery); 

Es war gut, als Erweiterung Methode auf eine JQuery Instanz wie $ (‚Wähler‘) foo(). Aber jetzt muss ich eine statische Funktion hinzufügen, um es wie $ .foo() zu nennen;

Ich habe versucht, "JQuery" mit "JQueryStatic" wie folgt ersetzt:

module JQueryExtensions { 
    export function foo() { 
     ... 
    } 
} 
interface JQueryStatic{ 
    foo(): JQuery; 
} 
(function ($) { 
    $.fn.foo = function(): JQuery { 
    ... 
    return this; 
    }; 
})(JQueryStatic); 

Aber es gibt mir die folgende Fehlermeldung: "Kann nicht finden Name 'JQueryStatic'"

+0

nur passieren 'jQuery' statt' JQueryStatic' und benutze '$ .foo =' anstelle von '$ .fn.foo =' –

+0

Danke @Aleksey, That Worked. Sende es bitte als Antwort. – Dorad

Antwort

2

einfach passieren jQuery (Funktion/type definition) anstelle von JQueryStatic (Schnittstelle) und verwendet $.foo = (statische Methode) anstelle von $.fn.foo = (Instanzmethode)

(function ($:JQueryStatic) { 
    $.foo = function(): JQuery { 
     ... 
    }; 
})(jQuery);