Come useresti dattilografo per migliorare il controllo del tipo e del tipo di controllo per le chiamate di funzione JQueryUI
-
12-12-2019 - |
Domanda
Quando si lavora con un widget JQuery UI, finisci spesso con qualcosa che segue questo modello:
$ ("# someid"). Individuato ("opzione", "poepition", valore);
C'è un buon modo per modellare questa interazione per ottenere un certo tipo di tipo utile controllata dal dattiloscritto?Tecnicamente hai probabilmente il metodo definito come questo:
Anteidget (OptionLiterAl: String, OptionName: String, OptionValue: QUALSIASI): JQuery;
(modellato dopo le definizioni del tipo UI jQuery fornite)
Quindi il valore dell'opzione è fondamentalmente "qualsiasi", non importa il nome dell'opzione.C'è un modo per sovraccaricare ulteriormente la definizione del tipo e magari fare qualche modello di corrispondenza su OptionName?Oppure ci sono dei piani per questo?
Soluzione
Potresti voler scavare nell'esempio Ui JQuery,
http://www.typescriptlang.org/samples/#warship Che copre come estendere il tipo di interfaccia jQuery con metodi aggiuntivi.
Il tipo JQuery è un tipo di interfaccia e i tipi di interfaccia sono aperti in dittivettizzazione, il che significa che le unità di compilazione successive possono aggiungere membri al tipo.Il tuo esempio sarebbe stato scritto come,
interface JQuery {
someWidget(optionLiteral: string, optionName: string, optionValue: any): JQuery
}
.
Per quanto riguarda il sovraccarico, i metodi possono essere sovraccaricati su tipo ma non valore.Il sovraccarico sui valori renderebbe un buon suggerimento sul sito Codeplex.