Comment utiliserez-vous dactylographier pour améliorer la vérification de type-avance et de type pour les appels de fonction JQueryUI

StackOverflow https://stackoverflow.com//questions/12679888

  •  12-12-2019
  •  | 
  •  

Question

Lorsque vous travaillez avec un widget JQuery UI, vous vous retrouvez souvent avec quelque chose qui suit ce modèle:

$ ("# quelqu'un" "). Quelqu'un) (" Option "," OneOption ", valeur);

Y a-t-il un bon moyen de modéliser cette interaction pour obtenir un type utile de vérifier de type dossier?Techniquement, vous avez probablement la méthode définie comme ceci:

quelquewidget (optionLiteral: chaîne, optionName: chaîne, optionValue: tout): jQuery;

(modélisé après les définitions de type JQuery UI fourni)

La valeur d'option est fondamentalement "tout", peu importe le nom d'option.Existe-t-il un moyen de surcharger la définition de type et peut-être faire une correspondance de modèle sur OptionName?Ou y a-t-il des projets pour cela?

Était-ce utile?

La solution

Vous voudrez peut-être creuser dans l'exemple de JQuery Ui,

http://www.typescriptlang.org/samples/#warship

qui couvre comment étendre le type d'interface JQuery avec des méthodes supplémentaires.

Le type JQuery est un type d'interface et des types d'interface sont ouverts dans TypeScript, ce qui signifie que les unités de compilation ultérieures peuvent ajouter des membres au type.Votre exemple serait écrit comme,

interface JQuery {
    someWidget(optionLiteral: string, optionName: string, optionValue: any): JQuery
}

Quant à la surcharge, les méthodes peuvent être surchargées sur type mais pas de valeur.La surcharge sur les valeurs ferait une bonne suggestion sur le site de Codeplex.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top