Letra de imprenta: Resig referencia del extienden

votos
2

Estoy tratando de hacer referencia a código existente que utiliza Resig de 'extender', pero yo estoy poniendo un montón de errores

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

errores:

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

Soy consciente de que, finalmente, me gustaría volver a escribir el código basado en texto mecanografiado a extender, pero hasta entonces, ¿cómo hacer referencia a ella de nuevo código?

Creo que esto plantea la pregunta más profunda - ¿por qué se quejaba de errores de tipo existente en código javascript?

Publicado el 02/10/2012 a las 17:47
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
3

Letra de imprenta en general, no se puede inferir tipos de código JavaScript externo.

Tendrá que declarar la forma del código de 'extender' que está llamando a fin de que mecanografiado sabe cuál es la forma del texto es:

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

Usted puede poner esto en su archivo fuente directamente (si sólo tiene un proyecto de un solo archivo), o más correctamente, en un archivo'.d.ts la que se hace referencia a partir de los archivos de origen.

Respondida el 02/10/2012 a las 18:23
fuente por usuario

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