Angularjs определенно набрал визуальную студию 2015
Я пытаюсь запустить свой первый проект angularjs в Visual Studio 2015. Работал нормально, пока не попытался перейти на Typescript. Устанавливаются проекты с определенными именами и получаются сообщения об ошибках.
Вот как воспроизвести его:
- Создайте пустое приложение ASP.NET 4.5.2
- Nuget AngularJS Core 1.4.4
- Nuget AngularJS.TypeScript.DefinitelyTyped 4.1.1 (включает jQuery 0.0.1)
- Добавить пустой TypeScript файл
-
Добавить
/// <reference path="typings/angularjs/angular.d.ts" />
к этому файлу.
-
когда я получаю 444 ошибки, начиная с
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
Любая идея, что я делаю неправильно или как ее обойти?
Ответы
Ответ 1
Я проверил этот пакет, и большинство ошибок, похоже, поступают из файла jquery.d.ts, который выглядит просто старым. Этот файл по-прежнему использует "bool" вместо "boolean", что было давно измененным изменением.
Я исправил это, добавив в проект "jQuery.Typescript.DefinitelyTyped", который обновил файл jQuery.d.ts до версии, которая правильно разбиралась. Как только я это сделал, все ошибки компилятора исчезли.
Это похоже на ошибку в создании пакета nuget. Я рассмотрю вопрос о выпуске github.
Надеюсь, что это сработает для вас.
UPDATE: я открыл эту проблему в GitHub https://github.com/borisyankov/DefinitelyTyped/issues/5446
Ответ 2
У меня была та же проблема, но вышеописанное решение не сработало для меня.
jQuery.Typescript.DefinitelyTyped уже установлен так, как это требуется в пакете angularjs.TypeScript.DefinetlyTyped.
Я исправил его:
- удалить пакет angularjs.
- удалить angularjs.TypeScript.DefinetlyTyped пакет.
- удалить jQuery.Typescript.DefinitelyTyped
- установить jQuery.Typescript.DefinitelyTyped
- установить пакет angularjs.TypeScript.DefinetlyTyped.
- установить пакет angularjs.
Спасибо Майку за подсказку.
Ответ 3
Проблема вызвана NuGet в VS 2015, потому что по умолчанию она устанавливает самую старую версию своих зависимостей, которая в этом случае устанавливает древний пакет jQuery DT для пакета AngularJS DT, как объяснено .
Я установил это еще проще, просто сделав следующее:
- Управление пакетами NuGet для проекта
- Показать только установленные пакеты
- Выберите jquery.TypeScript.DefinitelyTyped
- Обновление
- Наслаждайтесь!