Typescript: corelarea Resig a extinde

voturi
2

Am încercat să referință codul existent care utilizează lui Resig „extinde“, dar eu sunt obtinerea o grămadă de erori

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

erori:

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

Îmi dau seama că în cele din urmă aș vrea să rescrie codul-based extinde la typescript, dar până atunci, cum pot face referire la ea din nou cod?

Cred că acest lucru pune întrebarea mai profundă - de ce se plânge de erori de tip în JavaScript codul existent?

Întrebat 02/10/2012 la 17:47
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
3

Typescript, în general, nu se poate deduce tipuri de cod JavaScript extern.

Va trebui să declare forma codului „extinde“ apelată în astfel încât mașina de scris, stie ce este forma de tipul:

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

Puteți fie pus în fișierul sursă direct (dacă aveți doar un singur proiect-fișier), sau mai corect, într-un fișier“.d.ts', care faceți referire la fișierele sursă.

Publicat 02/10/2012 la 18:23
sursa de către utilizator

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