Jak rozsirit JQuery rozhrani o dalsi metody v TypeScriptu


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:

/// <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:

$('#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.


Leave a Reply

Your email address will not be published.