Подтвердить что ты не робот

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
    

Любая идея, что я делаю неправильно или как ее обойти?

4b9b3361

Ответ 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
  • Обновление
  • Наслаждайтесь!