6 votes

Angular2 build errors - cannot find types

J'ai quelques problèmes avec Typings. Lorsque je lance npm start J'obtiens les erreurs suivantes :

> tsc && concurrently "npm run tscw" "npm run lite"

node_modules/@angular/common/src/directives/ng_class.d.ts(72,35): error TS2304: Cannot find name 'Set'.
node_modules/@angular/common/src/facade/async.d.ts(27,33): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/async.d.ts(28,45): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/lang.d.ts(4,17): error TS2304: Cannot find name 'Map'.
node_modules/@angular/common/src/facade/lang.d.ts(5,17): error TS2304: Cannot find name 'Set'.
node_modules/@angular/common/src/facade/lang.d.ts(70,59): error TS2304: Cannot find name 'Map'.
node_modules/@angular/common/src/facade/promise.d.ts(2,14): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(8,32): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(9,38): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(10,35): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(10,93): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(11,34): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(11,50): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(12,32): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(12,149): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/facade/promise.d.ts(13,43): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/forms/directives/select_control_value_accessor.d.ts(18,17): error TS2304: Cannot find name 'Map'.
node_modules/@angular/common/src/pipes/async_pipe.d.ts(29,29): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/pipes/async_pipe.d.ts(35,38): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/pipes/async_pipe.d.ts(37,39): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/common/src/pipes/async_pipe.d.ts(39,44): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/application_ref.d.ts(39,88): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/application_ref.d.ts(99,42): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/application_ref.d.ts(174,33): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts(24,15): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts(26,16): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/di/reflective_provider.d.ts(105,123): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/di/reflective_provider.d.ts(105,165): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/async.d.ts(27,33): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/async.d.ts(28,45): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/collection.d.ts(1,25): error TS2304: Cannot find name 'MapConstructor'.
node_modules/@angular/core/src/facade/collection.d.ts(2,25): error TS2304: Cannot find name 'SetConstructor'.
node_modules/@angular/core/src/facade/collection.d.ts(4,27): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(4,39): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(7,9): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(8,30): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(11,43): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(12,27): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(14,23): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(15,25): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/collection.d.ts(100,41): error TS2304: Cannot find name 'Set'.
node_modules/@angular/core/src/facade/collection.d.ts(101,22): error TS2304: Cannot find name 'Set'.
node_modules/@angular/core/src/facade/collection.d.ts(102,25): error TS2304: Cannot find name 'Set'.
node_modules/@angular/core/src/facade/lang.d.ts(4,17): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/lang.d.ts(5,17): error TS2304: Cannot find name 'Set'.
node_modules/@angular/core/src/facade/lang.d.ts(70,59): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/facade/promise.d.ts(2,14): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(8,32): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(9,38): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(10,35): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(10,93): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(11,34): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(11,50): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(12,32): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(12,149): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/facade/promise.d.ts(13,43): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/linker/component_resolver.d.ts(8,53): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/linker/component_resolver.d.ts(12,44): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/linker/dynamic_component_loader.d.ts(62,148): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/linker/dynamic_component_loader.d.ts(103,144): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/linker/dynamic_component_loader.d.ts(108,139): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/linker/dynamic_component_loader.d.ts(109,135): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/core/src/reflection/reflector.d.ts(28,22): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/reflection/reflector.d.ts(30,15): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/reflection/reflector.d.ts(32,15): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/reflection/reflector.d.ts(34,15): error TS2304: Cannot find name 'Map'.
node_modules/@angular/core/src/reflection/reflector.d.ts(36,16): error TS2304: Cannot find name 'Set'.
node_modules/@angular/core/src/testability/testability.d.ts(40,20): error TS2304: Cannot find name 'Map'.
node_modules/@angular/http/src/headers.d.ts(29,18): error TS2304: Cannot find name 'Map'.
node_modules/@angular/http/src/headers.d.ts(45,59): error TS2304: Cannot find name 'Map'.
node_modules/@angular/http/src/url_search_params.d.ts(11,16): error TS2304: Cannot find name 'Map'.
node_modules/@angular/platform-browser-dynamic/platform_browser_dynamic.d.ts(75,90): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/directives/router_outlet.d.ts(27,54): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/directives/router_outlet.d.ts(33,51): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/directives/router_outlet.d.ts(38,56): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/directives/router_outlet.d.ts(47,65): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/directives/router_outlet.d.ts(58,60): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/async.d.ts(27,33): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/async.d.ts(28,45): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/lang.d.ts(4,17): error TS2304: Cannot find name 'Map'.
node_modules/@angular/router-deprecated/src/facade/lang.d.ts(5,17): error TS2304: Cannot find name 'Set'.
node_modules/@angular/router-deprecated/src/facade/lang.d.ts(70,59): error TS2304: Cannot find name 'Map'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(2,14): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(8,32): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(9,38): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(10,35): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(10,93): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(11,34): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(11,50): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(12,32): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(12,149): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/facade/promise.d.ts(13,43): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/instruction.d.ts(125,34): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/instruction.d.ts(161,25): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/instruction.d.ts(179,34): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/instruction.d.ts(182,25): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/interfaces.d.ts(21,107): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/interfaces.d.ts(39,104): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/interfaces.d.ts(57,109): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/interfaces.d.ts(80,109): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/interfaces.d.ts(102,114): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/lifecycle/lifecycle_annotations.d.ts(29,100): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/route_config/route_config_impl.d.ts(105,19): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/route_definition.d.ts(20,20): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/route_definition.d.ts(35,20): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/route_registry.d.ts(52,66): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(56,50): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(68,46): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(86,45): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(99,34): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(107,64): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(112,85): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(114,51): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(116,72): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(122,48): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(128,70): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(140,43): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(144,29): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(150,19): error TS2304: Cannot find name 'Promise'.
node_modules/@angular/router-deprecated/src/router.d.ts(162,70): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/Observable.d.ts(10,66): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/Observable.d.ts(66,60): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/Observable.d.ts(66,70): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(7,59): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(7,69): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(9,9): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(10,26): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(10,36): error TS2304: Cannot find name 'Promise'.
src/classes/animal.ts(42,18): error TS2339: Property 'startsWith' does not exist on type 'string'.

D'autres personnes ont rencontré ce problème au cours des derniers mois, mais aucune de ces solutions n'a fonctionné pour moi.

Des idées ? (Angular 2)

10voto

Baerree Points 414

Si vous utilisez --target=es5, vous devrez ajouter une ligne quelque part dans votre application (par exemple, en haut du fichier .ts où vous appelez bootstrap) :

<reference path="node_modules/angular2/typings/browser.d.ts"/>

voir cet article : Angular 2 typescript ne trouve pas les noms

Personnellement, je suis passé à ES6, qui fonctionne parfaitement bien jusqu'à présent. Je recommande également de faire le QuickStart de 5 minutes et la série de tutoriels pour Angular2 puisque vous pouvez l'utiliser comme squelette stable pour d'autres projets : https://angular.io/guide/quickstart

Bonne chance

0voto

F.G Points 1

J'ai rencontré le même problème mais dans Visual Studio récemment, et j'ai fait beaucoup de recherches sur Google mais je n'ai pas pu trouver de post parlant de ce problème qui se produit particulièrement lors de l'exécution de l'application web dans Visual Studio. Il semblait que mon application pouvait même être construite avec succès par npm alors qu'elle ne pouvait pas l'être dans VS. Finalement, j'ai trouvé la raison après quelques nuits de travail. J'aimerais partager mon expérience ici parce qu'il semble qu'il y ait peu d'articles parlant de ce problème dans Visual Studio. J'espère que cela pourra aider d'autres personnes qui ne sont pas vraiment familières avec les typescript dans VS car j'ai trouvé cet article facilement lorsque j'ai cherché ce problème sur Google.

En fait, il y a un outil typescript dans VS, vous pouvez le voir ainsi que sa version dans Outils->Extensions et Mises à jour. Mon projet est exactement le même que celui créé par le tutoriel VISUAL STUDIO 2015 QUICKSTART ici : https://angular.io/guide/visual-studio-2015 .

En fait, mon VS avait une extension de typecript de 1.8.xx qui est différente de la 2.2 requise dans le tutoriel. Je pense que 1.8.xx est la version par défaut de typescript fournie avec VS community 2015. Ce que j'ai fait pour résoudre le problème a été de supprimer l'ancienne version et de réinstaller typescript 2.2 dans VS. La chose délicate qui vaut la peine d'être mentionnée est comment le désinstaller parce que le bouton de désinstallation était désactivé dans mon VS. Plus précisément, il faut aller dans le dossier C:\ProgramData\Package Cache\, et rechercher TypeScript_Dev14.msi dans ce dernier. Faites ensuite un clic droit sur le numéro de version dans votre VS pour le désinstaller. Après cela, vous ne devriez plus voir TypeScript dans les extensions de VS. Ensuite, allez dans Extensions et Mises à jour dans VS pour rechercher typescript 2.2 et l'installer. Après cela, ma construction dans VS se déroule normalement. J'ai eu l'idée ici dans le commentaire de Simon Weave. Merci de m'avoir sauvé la vie. http://blog.stevensanderson.com/2016/10/04/angular2-template-for-visual-studio/

Ce que je ne comprends toujours pas dans le tutoriel, c'est qu'il est dit que l'installation de TypeScript peut se faire soit par nmp -g install, ce que j'ai fait, soit par Download and install TypeScript 2.2 for Visual Studio 2015. Mais il semble que la première ne fonctionne pas car elle ne modifie pas l'outil typescript dans VS.

0voto

Cat Perry Points 3

Dans votre tsconfig.json tout ce que vous avez à faire est de changer la cible des options de compilation de "es5" à "es6" et cela devrait fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X