JavaScript appelant directement à partir tapuscrit

voix
18

Je viens de télécharger la documentation dactylographiée. J'ai quelques classes JavaScript et je voudrais créer et utiliser ces classes dans une application de test dactylographiée

Comment puis-je appeler une fonction JavaScript d'un JavaScript inclus du tapuscrit. Je ne veux pas créer un fichier « d.ts ». Juste pour créer mes cours, appeler ses méthodes, accéder à ses propriétés.

Comment je fais ça?


Je suis en train d'utiliser kendoUI avec tapuscrit.

Par exemple, pour afficher une fenêtre que je dois faire:

  1. Avoir un HTML pour représenter le contenu d'une fenêtre. J'ai un div avec un logonDialog id. Ce div
    est d' abord caché;
  2. Je crée la fenêtre: logonDlg.kendoWindow (logOnParams);
  3. Ensuite, en utilisant jQuery je montre la div: en utilisant logonDlg.show();

Exemple

var logonDlg = $(logonDialog);

if (!logonDlg.data(kendoWindow)) {
   logonDlg.kendoWindow(logOnParams);
   logonDlg.show();
}

Il fonctionne sur OK. La JS est généré comme je veux, mais je reçois une erreur puisque la propriété « kendoWindow » n'existe pas sur la valeur de type 'JQuery.

Comment puis-je désactiver ce type d'erreur. Je ne pouvais pas faire, ce que dit Ryan, au travail.

Créé 03/10/2012 à 15:45
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
22

Si vous voulez arrêter les erreurs sans faire beaucoup d'autre travail supplémentaire, vous pouvez « déclarer » les objets de votre code JS:

declare var w; // implicit type here is 'any'
// (later, anywhere in your file...)
var x = new w(); // you can do whatever you want with w now without getting errors
w.x = 4; // etc.
Créé 03/10/2012 à 16:18
source utilisateur

voix
8

Il y a une meilleure solution. Il suffit de lancer le jQuery logonDlg à tout comme ceci:

(<any>logonDlg).kendoWindow(logOnParams);

Le code sera un peu différent mais fonctionnera de la même.

  1. Sans la distribution e code généré est comme ceci: logonDlg.kendoWindow (logOnParams);
  2. Avec le casting sera comme ceci: (logonDlg) .kendoWindow (logOnParams);

Les deux fonctionnent OK.

Cordialement

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

voix
5

Vous venez de le faire. Tapuscrit ne vous arrêtera pas. Vous verrez des avertissements dans la sortie du compilateur , mais tscva générer votre fichier JS très bien.

Créé 03/10/2012 à 15:50
source utilisateur

voix
4

Dans ce cas particulier , vous pouvez simplement inclure les définitions tapuscrit UI Kendo qui fournit Telerik.

(Je me rends compte de cette question a été posée en arrière quand les définitions TS probablement n'existaient pas encore, mais je voulais ajouter ce détail pour les personnes qui viennent à travers cette question à l'avenir.)

Créé 30/03/2015 à 12:28
source utilisateur

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