Je to prekvapive jednoduche. Prvne jsem to zkousel pomoci metod jako jQuery.fn.extends ale to neneslo svoje ovoce. Pak jeste jsem si hral s klicovymi slovy TypeScriptu extends a implements ale i tady jsem vzdy narazil na nejake chyby.
Az pak me napadlo se podivat na existujici soubory .d.ts jak to delaji oni – a byl jsem velmi prekvapen. Pro rozsireni rozhrani o nove metody staci pouze vytvorit rozhrani o stejneho jmena. Proto jsem si vytvoril soubor jquery.tagcloud.d.ts (analogie k jquery.tagcloud.js, ve kterem jsou tyto metody implementovany) a zapsal do nej tento obsah:
1 2 3 4 5 6 7 8 |
/// <reference path="jquery.d.ts> /> interface JQuery { tagcloud(): void; //-Musi to byt typ any protoze do teto metody predavam parametry v slozenych zavorkach tagsInput(args: any): void; } |
Volam pak tyto metody takto:
1 2 |
$('#tags').tagsInput({ width: "auto" }); $('#tagCloud a').tagcloud(); |
Tak a to je cele. Jen dodam ze analogicky muzete rozsirit $ o staticke metody tim ze vytvorite rozhrani nazvu JQueryStatic a pridate do nej metody ale to jsem nezkousel. Odted uz mi zmizely vsechny chyby, ktere mi Visual Studio hlasilo co se tyce TypeScriptu.