snippets - angularjs definitivamente mecanografiado visual studio 2015
visual studio code for angular 5 (3)
Estoy tratando de hacer que mi primer proyecto angularjs funcione en Visual Studio 2015. Funcionó bien hasta que intenté moverme a Typescript. Instala los proyectos DefinitelyTyped y obtén muchos mensajes de error.
Aquí está cómo reproducirlo:
- Crear una aplicación ASP.NET 4.5.2 vacía
- Nuget AngularJS Core 1.4.4
- Nuget AngularJS.TypeScript.DefinitelyTyped 4.1.1 (incluye jQuery 0.0.1)
- Añadir un archivo TypeScript vacío
Añadir
/// <reference path="typings/angularjs/angular.d.ts" />
a ese archivo.
Ahí es cuando obtengo 444 errores, comenzando con
Error TS2411 Property ''find'' of type ''{ (selector: string): IAugmentedJQuery; (element: any): IAugmentedJQuery; (obj: JQuery): IAugment...'' is not assignable to string index type ''HTMLElement''. TypeScript Virtual Projects l:/M/eigene dateien/visual studio 2015/Projects/WebApplication3/WebApplication3/Scripts/typings /angularjs/angular.d.ts
¿Alguna idea de lo que estoy haciendo mal o cómo solucionarlo?
El problema lo causa NuGet en VS 2015, ya que por defecto instala la versión más antigua de sus dependencias, que en este caso instala el antiguo paquete jQuery DT para el paquete AngularJS DT, como se explica here .
Arreglé esto aún más simple simplemente haciendo esto:
- Gestionar paquetes NuGet para proyecto
- Mostrar solo los paquetes instalados
- Seleccione jquery.TypeScript.DefinitelyTyped
- Mejorar
- ¡Disfrutar!
Revisé este paquete y la mayoría de los errores parecen provenir del archivo jquery.d.ts, que parece antiguo. Ese archivo todavía usa "bool" en lugar de "boolean", que fue un cambio de ruptura que se hizo hace mucho tiempo.
Lo arreglé agregando "jQuery.Typescript.DefinitelyTyped" al proyecto, que actualizó el archivo jQuery.d.ts a una versión que se analizó correctamente. Tan pronto como hice eso, todos los errores del compilador desaparecieron.
Esto parece un error en la creación del paquete nuget. Buscaré abrir un problema en github.
Espero que eso te funcione.
ACTUALIZACIÓN: abrí este problema en GitHub https://github.com/borisyankov/DefinitelyTyped/issues/5446
Tuve el mismo problema, pero la solución anterior no funcionó para mí. jQuery.Typescript.DefinitelyTyped ya estaba instalado, ya que es requerido por el paquete angularjs.TypeScript.DefinetlyTyped.
Lo arreglé por:
- Desinstalar el paquete angularjs.
- desinstale el paquete angularjs.TypeScript.DefinetlyTyped.
- desinstala jQuery.Typescript.DefinitelyTyped
- instala jQuery.Typescript.DefinitelyTyped
- Instale el paquete angularjs.TypeScript.DefinetlyTyped.
- Instale el paquete angularjs.
Gracias Michael por proporcionar la pista.