Typescript: verwijzingen Resig uit te breiden

stemmen
2

Ik ben op zoek naar bestaande code die Resig maakt gebruik van 'strekken' verwijzen, maar ik krijg een hoop fouten

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

fouten:

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

Ik realiseer me dat uiteindelijk ik zou willen het uit te breiden op basis van code om typoscript te herschrijven, maar tot die tijd, hoe kan ik verwijzen naar het van nieuwe code?

Ik denk dat dit roept de diepere vraag - waarom is het klagen over het type fouten in bestaande javascript code?

De vraag is gesteld op 02/10/2012 om 17:47
bron van user
In andere talen...                            


1 antwoorden

stemmen
3

Typescript het algemeen niet kan typen van externe JavaScript-code af te leiden.

Je moet de vorm van de 'uit te breiden' code die u belt in zodat typoscript verklaren weet wat de vorm van het type is:

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

U kunt zetten dat u in uw bronbestand direct (als je gewoon een single-file-project), of beter gezegd, in een bestand' .d.ts', die u verwijst vanuit uw bronbestanden.

antwoordde op 02/10/2012 om 18:23
bron van user

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