19

Sto provando a far funzionare il mio primo progetto angularjs in Visual Studio 2015. Ho lavorato bene fino a quando non ho provato a passare a Typescript. Installato i progetti DefinitelyTyped e ottenere molti messaggi di errore.angularjs sicuramente digitato visual studio 2015

Ecco come riprodurre esso:

  • Crea un ASP.NET vuoto 4.5.2 applicazione
  • Nuget AngularJS Nucleo 1.4.4
  • Nuget AngularJS.TypeScript.DefinitelyTyped 4.1.1 (include jQuery 0.0.1)
  • aggiungere un file typescript vuoto
  • Aggiungere

    /// <reference path="typings/angularjs/angular.d.ts" /> 
    

    a quel file.

  • questo è quando ottengo 444 errori, a cominciare

    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 
    

Qualche idea di cosa sto facendo male o il modo di lavorare intorno ad esso?

risposta

34

Ho controllato questo pacchetto e la maggior parte degli errori sembra provenire dal file jquery.d.ts, che sembra appena vecchio. Quel file usa ancora "bool" al posto di "boolean", che è stata una modifica di rottura fatta molto tempo fa.

L'ho risolto aggiungendo "jQuery.Typescript.DefinitelyTyped" al progetto, che ha aggiornato il file jQuery.d.ts a una versione che ha analizzato correttamente. Non appena ho fatto ciò, tutti gli errori del compilatore sono andati via.

Questo sembra un bug nella creazione del pacchetto nuget. Cercherò di aprire un problema su GitHub.

Spero che funzioni per voi.

UPDATE: Ho aperto questo problema in GitHub https://github.com/borisyankov/DefinitelyTyped/issues/5446

+1

Fantastico! Funziona bene ora. ** Devo dire che ho dovuto aggiungere il jQuery.Typescript.DefinitelyTyped prima di quello Angolare. ** Mi stavo chiedendo del numero di versione 0.0.1 di jQuery DefinitelyTyped, ma ci sono così tante cose da chiedersi quando si inizia con Angular ... Comunque, grazie mille. Ora lavorare con Angular è ancora più divertente. – Shuma

+0

Ho avuto lo stesso problema grazie per questa correzione –

+0

Ho avuto lo stesso problema per questo, basta aggiornarlo. –

4

ho avuto lo stesso problema, ma la soluzione di cui sopra non ha funzionato per me. jQuery.Typescript.DefinitelyTyped era già installato in quanto richiesto dal pacchetto angularjs.TypeScript.DefinetlyTyped.

ho fissato entro: pacchetto angularjs

  1. disinstallazione.
  2. uninstall angularjs.TypeScript.DefinetlyTyped package.
  3. disinstallazione jQuery.Typescript.DefinitelyTyped
  4. installare jQuery.Typescript.DefinitelyTyped
  5. pacchetto di installazione angularjs.TypeScript.DefinetlyTyped.
  6. installa il pacchetto angularjs.

Grazie Michael per aver fornito il suggerimento.

+0

Hai provato ad aggiornarlo? Come Angularjs Type Script installarlo ma la vecchia versione.Tuttavia, la soluzione funziona :) –

+0

devi aggiornarlo alla versione più recente, per qualche motivo nuget stava installando la versione 0.0.1 ed è su 2.8.8, quando lo studio visivo definizioni di dattiloscritto automatiche che non sembrano sempre prendere l'ultima o una corretta. – kevindstanley

4

Il problema è causato da NuGet in VS 2015, poiché è impostato per impostazione predefinita sulla versione più vecchia delle sue dipendenze che in questo caso installa il pacchetto jQuery DT antico per il pacchetto AngularJS DT, come spiegato here.

Ho fissato questo ancora più semplice da solo facendo questi:

  1. gestire i pacchetti Nuget per il progetto
  2. Mostra pacchetti installati solo
  3. Selezionare jquery.TypeScript.DefinitelyTyped
  4. Qualificati
  5. Enjoy!
Problemi correlati