Mejorar la compatibilidad de TypeScript en Azure Functions

Publicado el 25 febrero, 2019

Program Manager, Azure Functions

TypeScript es cada vez más popular en la comunidad de JavaScript. Debido a que Azure Functions ejecuta Node.js y TypeScript compila en JavaScript, los usuarios motivados ya podían activar el código de TypeScript en Azure Functions. Sin embargo, la experiencia no era sencilla, y elementos como nuestra estructura predeterminada de carpetas complicaba un tanto comenzar. Hoy nos complace anunciar un conjunto de optimizaciones a las herramientas que mejoran esta situación. Ahora los usuarios de Azure Functions pueden desarrollar fácilmente con TypeScript cuando compilan las aplicaciones basadas en eventos.

Para aquellos que no están familiarizados con TypeScript, es un superconjunto de JavaScript que ofrece escrituras, interfaces, clases estáticas opcionales. Estas características le permiten detectar errores más temprano en el proceso de desarrollo, lo que genera una ingeniería de software más sólida. Además, TypeScript le permite indirectamente aprovechar la sintaxis moderna de JavaScript ya que es compatible con ECMAScript 2015.

Con este conjunto de cambios en Azure Functions Core Tools y la extensión de Azure Functions para Visual Studio Code, ahora Azure Functions es compatible con TypeScript desde el primer momento. Con estos cambios, se incluye un conjunto de plantillas para TypeScript, definiciones de tipos y scripts npm. Siga leyendo para obtener más información acerca de la nueva experiencia.

Plantillas para TypeScript

En la última versión de Azure Functions Core Tools y la extensión de Azure Functions para VS Code, tiene la opción de usar TypeScript cuando crea funciones. Para ser más preciso, cuando cree una nueva aplicación de función, ahora verá la opción para especificar TypeScript en la selección de pila de lenguajes. Con esta acción, activará los archivos predeterminados package.json y .tsconfig para que la aplicación sea compatible con TypeScript. Luego, cuando cree una función, podrá seleccionar diversas plantillas de TypeScript para funciones específicas. Cada plantilla representa un desencadenador posible, y existe un equivalente en TypeScript para cada plantilla de JavaScript.

Seleccione entre diversas plantillas de TypeScript para funciones específicas para desencadenadores diferentes

La mejor parte de este nuevo flujo es que para transpilar y ejecutar funciones de TypeScript, no necesita realizar ninguna acción que sea única de Functions. Por ejemplo, esto significa que cuando un usuario presione F5 para comenzar a depurar Visual Studio Code, este ejecutará automáticamente las tareas de instalación requeridas, transpilará el código de TypeScript e iniciará el host de Azure Functions. Esta experiencia local de desarrollo es excelente y es exactamente cómo un usuario comenzaría a depurar cualquier otra aplicación en VS Code.

Obtenga más información sobre cómo activar sus funciones de TypeScript en nuestra documentación.

Definiciones de tipo para Azure Functions

El paquete @azure/functions en npm contiene las definiciones de tipo para Azure Functions. ¿Alguna vez se ha preguntado qué forma tiene un objeto de Azure Functions? O tal vez, el objeto de contexto que se pasa en cada función de JavaScript. Este paquete lo ayudará. Para aprovechar al máximo TypeScript, esto debería importarse en cada función .ts. Los puristas de JavaScript también se pueden beneficiar. Incluir este paquete en su código le permite tener una mejor experiencia con IntelliSense. Consulte el paquete @azure/functions en npm para obtener más información.

Scripts npm

En las aplicaciones de función de TypeScript, se incluye de forma predeterminada un archivo package.json que tiene algunos scripts npm sencillos. Estos scripts permiten que Azure Functions se ajuste directamente en su flujo típico de desarrollo al llamar comandos específicos de Azure Functions Core Tools. Por ejemplo, “npm start” ejecutará automáticamente “func start”, lo que significa que después de crear una aplicación de función no tiene que tratarla de forma diferente a cualquier otro proyecto de Node.js.

Para verlos en acción, consulte nuestro ejemplo de repositorio.

Pruébelo.

Ya sea con Azure Functions Core Tools o la Extensión de Azure Functions para VS Code, puede probar la experiencia mejorada para TypeScript en Azure Functions en su máquina local, incluso si no tiene una cuenta de Azure.

Pasos siguientes

Como siempre, no dude en contactar al equipo si tiene algún comentario en nuestro GitHub o en Twitter. ¡Feliz codificación!