Comment déclarer la méthode de liaison de fonction pour tapuscrit

voix
1

Je suis en train d'utiliser Mootools avec tapuscrit. Mootools, et certains navigateurs modernes prennent en charge la méthode .bind, qui est polymorphes.

Comment puis-je déclarer correctement cette fonction dans un fichier * de .d.ts, pour être en mesure d'utiliser des constructions comme [1,2] .map (this.foo.bind (this)); ?

Je sais que je peux éviter de telles constructions en utilisant lambdas, mais parfois je ne veux pas.

fichier Peut-être il y a un mootools.d.ts quelque part que je pouvais télécharger au lieu de réinventer moi-même?

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


2 réponses

voix
1

Les lib.d.ts de Tapuscrit définit déjà la signature de la fonction de liaison dans l'interface de fonction comme suit:

bind(thisArg: any, ...argArray: any[]): Function;

Je ne pense pas qu'il y ait une meilleure façon de le faire jusqu'à ce que les médicaments génériques sont ajoutés à la langue.

Pour le moment cependant, si vous voulez utiliser bind et le destinataire de la fonction résultante attend une signature spécifique, vous allez devoir jeter la fonction de retour à cette signature:

var bfn : (p: number) => string;
bfn = <(p: number) => string> fn.bind(ctx);
Créé 08/10/2012 à 19:03
source utilisateur

voix
0

Il y a une liste croissante des fichiers de définition être suivis ici .

En ce qui concerne la génération des méthodes pré-lié à leur ce pointeur dactylographiée je l' ai suggéré deux façons de le faire. 1) une simple classe de base I définie à la fin de ce fil . et 2) un mixin plus avancé et le système attribut ici .

Créé 08/10/2012 à 18:48
source utilisateur

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