Strojopisem: odkazování resig je rozšířit

hlasů
2

Snažím se odkazovat na stávající kód, který používá Resig je ‚prodloužit‘, ale já jsem stále spoustu chyb

------ test.ts --------

/// <reference path=myclass.js />
var m = new MyClass (3);

------ myclass.js --------

/// <reference path=class.js />

var MyClass = Class.extend({

    init: function (i)
    {
        this.i = i;
    },
})

------ class.js --------

(copied from http://ejohn.org/blog/simple-javascript-inheritance/)

chyby:

Supplied parameters do not match any signature of call target
The name 'Class' does not exist in the current scope
The property 'extend' does not exist on value of type '() => void'
The name 'Class' does not exist in the current scope

Uvědomuji si, že nakonec bych chtěl přepsat rozšířit založený kód strojopisu s, ale do té doby, jak mohu odkazovat jej z nového kódu?

Myslím, že to vyvolává hlubší otázku - proč se to stěžuje chyby typu ve stávající kód JavaScript?

Položena 02/10/2012 v 17:47
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
3

Strojopisem obecně nelze odvodit typy z externího kódu JavaScriptu.

Budete muset deklarovat tvar kódem ‚prodloužit‘ voláte do takže strojopisem ví, co je tvar typu je:

declare class Class {
    static extend(body: any);
}

Buď můžete dát, že ve zdrojovém souboru přímo (stačí-li projekt single-file), nebo přesněji, v souboru‘.d.ts' který odkazovat ze zdrojových souborů.

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

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