Volání JavaScript přímo ze strojopisu

hlasů
18

Právě jsem stáhli dokumentaci strojopisem. Mám některé třídy JavaScriptu a chtěl bych vytvořit a používat tyto třídy v testovací aplikaci strojopisem

Jak mohu volat funkce JavaScriptu zahrnutého JavaScriptu z strojopisem. Já nechci vytvořit soubor „d.ts“. Jen vytvořit mých přednášek, volat jeho metody, přístup k jeho vlastnosti.

Jak to udělám?


Snažím se používat kendoUI s strojopisem.

Například zobrazení okna musím udělat:

  1. Mají HTML reprezentovat obsah okna. Mám div s id logonDialog. Tento div
    je zpočátku skryté;
  2. I vytvořit okno: logonDlg.kendoWindow (logOnParams);
  3. Pak pomocí jQuery jsem ukázat div: using logonDlg.show();

Příklad

var logonDlg = $(logonDialog);

if (!logonDlg.data(kendoWindow)) {
   logonDlg.kendoWindow(logOnParams);
   logonDlg.show();
}

To funguje OK. JS je generována jak chci, ale dostávám chybu, protože sporný pozemek ‚kendoWindow‘ neexistuje na hodnotě typu ‚jQuery‘.

Jak mohu zakázat tento druh chyby. Nemohl jsem dělat, co řekl Ryan, do práce.

Položena 03/10/2012 v 15:45
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
22

Chcete-li zastavit chyby, aniž by dělali hodně jinde práci navíc, můžete ‚deklarovat‘ předměty z vašeho JS kód:

declare var w; // implicit type here is 'any'
// (later, anywhere in your file...)
var x = new w(); // you can do whatever you want with w now without getting errors
w.x = 4; // etc.
Odpovězeno 03/10/2012 v 16:18
zdroj uživatelem

hlasů
8

Tam je lepší řešení. Jen cast jQuery logonDlg některého takto:

(<any>logonDlg).kendoWindow(logOnParams);

Kód bude trochu jiný, ale bude fungovat stejně.

  1. Bez obsazení th generovaného kódu vypadá takto: logonDlg.kendoWindow (logOnParams);
  2. S obsazením bude vypadat takto: (logonDlg) .kendoWindow (logOnParams);

Oba pracují v pořádku.

pozdravy

Odpovězeno 05/10/2012 v 18:02
zdroj uživatelem

hlasů
5

Prostě to udělat. Strojopisem vás nezastaví. Uvidíte upozornění na výstupu kompilátoru, ale tscbude generovat váš JS soubor pohodě.

Odpovězeno 03/10/2012 v 15:50
zdroj uživatelem

hlasů
4

V tomto konkrétním případě mohl zahrnovat definice Kendo UI strojopisu , že Telerik poskytuje.

(Uvědomuji si tato otázka byla položena zpět, když definice TS pravděpodobně neexistovala ještě, ale chtěli přidat tento detail pro lidi, kteří přes tuto otázku v budoucnu).

Odpovězeno 30/03/2015 v 12:28
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more