Tapuscrit: référencement Resig de prolonger

voix
2

Je tente de faire référence le code existant qui utilise « étendre » de Resig, mais je reçois un tas d'erreurs

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

les erreurs:

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

je me rends compte que finalement je voudrais réécrire le code basé s'étendre à tapuscrit, mais jusque-là, comment puis-je y faire référence de nouveau code?

Je suppose que cela pose la question plus profonde - pourquoi est-il plaint des erreurs de type dans le code existant javascript?

Créé 02/10/2012 à 17:47
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
3

Tapuscrit ne peut généralement pas déduire les types de code JavaScript externe.

Vous aurez besoin de déclarer la forme du code « extension » vous appelez en sorte que tapuscrit sait ce que la forme du type est:

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

Vous pouvez le mettre dans votre fichier source directement (si vous avez juste un projet unique fichier), ou plus, dans un fichier » .d.ts' que vous faites référence à partir de vos fichiers source.

Créé 02/10/2012 à 18:23
source utilisateur

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