¿Cómo usaría TypeScript para mejorar el tipo de comprobación de tipo a anticipación y las llamadas de la función JQueryui
-
12-12-2019 - |
Pregunta
Cuando trabaje con un widget de ui jQuery, a menudo terminas con algo que sigue a este patrón:
$ ("# SAINID"). Alguien (opción "," cenition ", valor);
¿Hay una buena manera de modelar esta interacción para obtener un poco de checks de tipo útil de TyperScript?Técnicamente, probablemente tengas el método definido así:
Alguien (OptionLiteral: String, OptionName: String, OptionValue: cualquiera): jQuery;
(modelado después de las definiciones de tipo de interfaz de usuario de jquery proporcionado
El valor de la opción es básicamente "cualquier", sin importar el nombre de la opción.¿Hay alguna manera de sobrecargar la definición de tipo además y quizás haga un papel que coincida con OptionName?¿O hay planes para esto?
Solución
Es posible que desee cavar en el ejemplo de JQuery UI,
http://www.typescriptlang.org/samples/#warnship
que cubre cómo extender el tipo de interfaz jquery con métodos adicionales.
El tipo de jQuery es un tipo de interfaz y los tipos de interfaz están abiertos en TypeScript, lo que significa que las unidades de compilación posteriores pueden agregar miembros al tipo.Su ejemplo se escribiría como,
interface JQuery {
someWidget(optionLiteral: string, optionName: string, optionValue: any): JQuery
}
En cuanto a la sobrecarga, los métodos se pueden sobrecargar en el tipo pero no el valor.La sobrecarga de valores haría una buena sugerencia en el sitio de CodePlex.