typescript no reconoce la función ajax find
Tengo un pequeño problema con mi JS en una aplicación asp.net ajax. Tengo mucho código JS que está en archivos TypeScript. Esto hace que sea mucho más fácil programar para alguien como yo, con experiencia limitada en JS.
Sin embargo, también uso el método $find() proporcionado por MS ASP.NET ajax. Lo hago porque uso un Telerik RadDock en mi aplicación y esta es la única manera en que puedo manipular los RadDocks en JS.
Cambio los títulos, los cierro y los abro desde JS.
Ahora me gustaría tener todo el código en mi archivo TypeScript, pero desafortunadamente no reconoce la función $find().
Entonces, cada vez que necesito usar la función $find(), creo una nueva función y la pongo directamente dentro de mi página aspx, y luego me refiero a ella desde mis archivos TypeScript.
Estaba bien para una o dos funciones, incluso si no era lo ideal, pero ahora se está convirtiendo en un problema real. Hay mucho código en el archivo aspx.
¿Alguien puede aconsejarme sobre cómo solucionar este problema? ¿Hay alguna manera de que pueda referirme al método $find() dentro de mis archivos de TypeScript?
Respuesta #1
La solución rápida es agregar una declaración para el método find, así:
declare var $find;
Esto te permite usarlo de cualquier manera que desees, pero no te dará autocompletado.
var result = $find();
En este ejemplo result será de tipo any.
Si quieres un poco más de autocompletado, puedes hacer la declaración más explícita: no sé qué hace la función, pero si aceptara una cadena y devolviera un número, podrías agregar eso a tu declaración:
declare var $find: (input: string) => number;
var result = $find('Example');
Ahora la variable result será del tipo number y si no pasas la cadena, TypeScript te avisará.
Respuesta #2
También puedes instalar la biblioteca microsoft ajax de DefinitelyTyped. Prefiero instalarla desde nuget. Luego, incluye esta línea en tu javascript:
/// <reference path="/Scripts/typings/microsoft-ajax/microsoft.ajax.d.ts" />
