2015-03-25 4 views
7

Ich beginne gerade mit TypeScript und versuche, es zu einem vorhandenen AngularJS-Projekt hinzuzufügen.Warum bekomme ich Fehler: (45, 1) TS2304: Name kann nicht 'eckig' gefunden werden. in WebStorm

Ich habe das Bower-Verzeichnis, in dem eckig installiert ist, 'ausgeschlossen' und die DefinedTyp-Definitionen für angular im Einstellungsfenster heruntergeladen.

Angular Code-Vervollständigung funktioniert, aber Typoskript gibt mir einen Fehler TS2304, wo immer ich eckig.

Was habe ich verpasst?

Antwort

12

Um den Fehler zu beheben, müssen Sie die heruntergeladenen definitelyTyped Typoskript Stubs kopieren von ~/Library/Caches/WebStorm9/extLibs Ordnern in Ihrem Projektverzeichnis und verweisen sie in Ihrer .ts Datei /// <reference path> Kommentare verwenden, wie

/// <reference path="path/to/angular.d.ts" /> 

einfach zu machen Dinge klar: Wenn herunterladen Sie Typoskript Stubs v ia Einstellungen/Sprachen & Frameworks/Javascript/Bibliotheken, sie sind in ~/Library/Caches/WebStorm9/extLibs platziert. Es ist vollkommen in Ordnung für Webstorm - es erfordert keine Bibliotheksdateien direkt im Projektordner zu platzieren. Außerdem benötigt Webstorm selbst keine ///reference Kommentare, um Typen auflösen zu können - Typ Hinting/Navigation/Completion funktioniert auch dann, wenn die Typen nicht explizit referenziert werden. Der TSC-Compiler benötigt jedoch die ds.ts-Dateien, die irgendwo im Projektverzeichnis abgelegt und über den Kommentar ///reference referenziert werden. Um heruntergeladene Stubs dem Typskript-Compiler zur Verfügung zu stellen, müssen Sie diese in Ihr Projektverzeichnis kopieren (und wahrscheinlich in besser lesbare Namen umbenennen :)) und Kommentare hinzufügen (unter Verwendung der 'Generate reference path comment Intention (drücken Sie Alt +) Geben Sie einen Verweis ein, um einen Kommentar zu generieren)). Wir planen, eine Option zu bieten Dateien direkt in den Projektordner wie das (anstelle von System/extLibs /) in den zukünftigen Versionen

+1

Anstatt die Dateien aus WebStorms Systembibliothek zu kopieren, habe ich eine separate Kopie der Typdefinitionen mit tsd installiert. Es würde sicherlich etwas Arbeit sparen, wenn WebStorm das direkt tun würde. – kpg

+0

ist das auch für Angular2 wahr? –

+0

mehr oder weniger. Was ist Ihr Problem - 'TS2307: Kann das Modul' angular2/core 'nicht gefunden werden? Der Compiler kann die von Ihrem Modul importierten d.ts-Dateien nicht finden. Wenn Sie /// lena

2

wahrscheinlich benötigen einen Verweis auf die .d.ts in der jeweiligen .ts-Datei hinzufügen, das Problem hat, so etwas wie:

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

downloaded the definitelyTyped definitions for angular in the preferences window.

Die Absicht Herunterladen der Stummel zum Download ist Intellisense für JavaScript zur Verfügung zu stellen Code nicht TypeScript Code. Für TypeScript-Code sollten Sie die .d.ts direkt in Ihrem TypeScript-Code herunterladen und darauf verweisen.

Verwandte Themen