typescript - Hvordan utvide eksternt rammeverks d.ts (jQuery) uten å endre den originale?
Jeg bruker jQuery og dens definisjoner fra Definitely Typed-samlingen. Jeg vil utvide den med en Farbtastic-fargevelger som legger til nye metoder direkte til JQueryStatic, for eksempel:
$.farbtastic(placeholder)
Jeg ønsker ikke å endre den originale jquery.d.ts-filen for å legge til denne metoden, i stedet vil jeg lage noe som jquery-extend.d.ts med de ekstra metodene.
Svar #1
Jeg fant ut at det ikke er noe som hindrer meg i å legge til nye metoder til de originale klassene, så i jquery-extend.d.ts erklærer jeg ganske enkelt:
interface JQueryStatic {
farbtastic(element : string, callback? : Function) : Farbtastic;
}
interface JQuery {
farbtastic(element : string, callback? : Function) : void;
}
interface Farbtastic {
linkTo(callback : Function) : void;
setColor(color : string) : void;
}
Håper dette vil hjelpe noen en dag.
