Gépelt: hivatkozó Resig bővítsük

szavazat
2

Próbálom referencia meglévő kódot használó Resig a „kiterjesztése”, de kapok egy csomó hibát

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

hibák:

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

Tisztában vagyok azzal, hogy végül én szeretnék átírni a kiterjesztése alapú kódot géppel, de addig, hogy hogyan tudom hivatkozik rá az új kódot?

Azt hiszem, ez felveti a mélyebb kérdés - miért nem panaszkodik típusú hibákat meglévő javascript kódot?

A kérdést 02/10/2012 17:47
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
3

Géppel általában nem következtethetett típusú külső JavaScript kódot.

Akkor el kell, hogy állapítsa meg a formáját a „kiterjesztette” kód hívsz be úgy, hogy tudja, mit gépelt alakja a típus:

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

Akkor sem tesz, hogy a forrás file közvetlenül (ha csak egyetlen fájlt projekt), vagy még pontosabban, egy”.d.ts' fájl, amely az Ön által hivatkozott saját forrás fájlokat.

Válaszolt 02/10/2012 18:23
a forrás felhasználó

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