Zunächst einmal: Ich habe diese überprüft:
Typescript kann den Namen 'Promise' trotz Verwendung von ECMAScript 6 nicht finden
wie man ES6-Versprechen mit Typoskripten verwendet?
Visual Studio-Code: Kann der Name angular nicht gefunden werden?
Und viele, viele, viele mehr. Hatte schon seit 2 Tagen meinen Kopf geschlagen.
Und ja:
Ich habe in meiner Boot.ts-Datei (oder bootstrap-Datei) verwiesen:
%Vor%Nun zu dem Problem: Ich benutze Visual Studio 2015 W / Update 1 und ein ASP.NET MVC 6 Projekt (Release Candidate 1) + Typescript 1.8.1.
Ich habe dieses Tutorial verwendet, um das Setup durchzuführen: Ссылка
Ich verwende Angular 2 seit einiger Zeit erfolgreich und jetzt wird der gleiche Code (afaik) nicht kompiliert. Es wird mir die "Can not find name: Promise" in der Datei browser.d.ts "geben, die in node_modules / angular2 / platform:
liegttsconfig.json
%Vor%package.json
%Vor%gulpfile.js
%Vor%Ich habe sogar versucht, den Referenzpfad innerhalb der Datei node_module / angular2 / platform / browser.d.ts zu verwenden, und es wurde ein Fehler bei der Verwendung des Referenzpfads in Nicht-Moduldateien verursacht.
Das einzige Ding funktioniert etwas (ich habe es nicht vollständig implementiert, weil es verrückt ist): Kopieren Sie den Code in der es6-promise.d.ts Datei und fügen Sie ihn in alle Dateien ein, die danach gefragt werden.
>Bearbeiten Sniff Sniff Hier riecht etwas schlecht: Ich beschloss, den Ordner node_module in _bak_node_module_folder umzubenennen und alle Pakete neu zu installieren:
%Vor%Ich hasse diese Zeichenbeschränkung mit Windows wirklich sehr. Wenn das das Problem ist, denke ich, dass ich mich von der höchsten Brücke meiner Stadt stürzen werde.
x2 bearbeiten Also habe ich beschlossen, Visual Studio's NPM wie vorgeschlagen zu aktualisieren und es hat nicht geklappt. Also habe ich beschlossen, Nodejs zu greifen und es vom Cmd auszuführen. Leider besteht das Problem weiterhin:
Hier ist die Ausgabe:
%Vor%Der Grund dafür ist, dass Sie auf ES5 abzielen, für das keine Versprechen enthält. Wenn Sie zu ES6 wechseln, verschwindet der Fehler auf magische Weise.
Wenn Sie ES5 als Ziel verwenden müssen, verwenden Sie einfach das in vorherigen Antworten erwähnte es6-shim.
Ich habe genau das gleiche Problem nach der Aktualisierung von es-promise von 3.0.2 auf 3.1.2. Letztendlich habe ich die neuere Version von nodejs mit einer neueren Version von npm installiert und dann den Ordner node_module gelöscht und die Pakete erneut installiert. Ich habe dann den Referenzpfad zur Datei main.ts oder boot.ts (wie auch immer Sie es benannt haben) hinzugefügt. Das hat es behoben.
Genau wie Steve sagte.
%Vor%Ich habe das gleiche Problem für eine lange Zeit in Visual Studio bekommen. Ich habe bemerkt, dass du dein Projekt in eine Welt voller Verletzungen bringst, wenn du nicht darauf wartest, dass ALLE deine NPM-Abhängigkeiten wiederhergestellt werden, BEVOR du versuchst zu bauen.
Mein Tipp: Gehen Sie zurück zu den ursprünglichen Abhängigkeitsversionen in Ihrer package.json-Datei aus dem Demoprojekt auf mithunvp.com. Warten Sie, bis die Abhängigkeiten wiederhergestellt sind, und erstellen Sie dann Ihr VS-Projekt neu.
Für das Problem der Zeichenbeschränkung müssen Sie npm in Visual Studio aktualisieren.
Siehe: npm unter Windows upgraden
Dieses Problem mit ES6-Typdefinitionen war für mich heute ein Albtraum: Ich habe viele Antworten auf SO durchgelesen, die versucht haben, das Problem auf verschiedene Arten zu umgehen, darunter:
typings
und / oder laden Sie es6-shim.d.ts manuell herunter , was ich auch vermeiden würde, weil ich nach einer Lösung suche, die mich nicht dazu zwingt, den VS2015 zu verlassen GUI. Nach einer Menge Nachforschungen kam ich mit dieser Problemumgehung heraus, die das Problem scheinbar mit ein paar einfachen Schritten zu beheben scheint :
typings
in der package.json
-Datei des Projekts hinzu. script
-Block in derselben package.json
-Datei hinzu, um Typings nach jeder NPM
-Aktion auszuführen / zu aktualisieren. typings.json
-Datei in den Stammordner des Projekts ein, die einen Verweis auf core-js
enthält (insgesamt besser als es6-shim
atm). Das ist es.
Sie können auch diesen Beitrag ansehen > für weitere Details zum Thema.
Ich habe dieses Problem gelöst, indem ich es6-shim.d.ts von DefinitelyTyped heruntergeladen habe und es in boot.ts referenziert habe, wo ich angular2 bootstrap mit diesem Code habe
%Vor%Ich habe diese Referenz auch entfernt, da sie Konflikte verursachte.
%Vor%Dies behebt meine Probleme und meine Dateien wurden korrekt und ohne Fehler kompiliert.
Eine andere Lösung besteht darin, eine Referenz zu
hinzuzufügen %Vor%oben in der Datei, in der Sie eckig booten und sicherstellen, dass Sie
hinzufügen %Vor%zu "compilerOptions" Ihrer tsconfig.json etwa:
%Vor%Es kann einen anderen Grund geben. Ich bin in der Lage, Ihren Fehler zu reproduzieren, wenn ich das Verzeichnis node_modules nicht ausschließe. Möglicherweise müssen Sie sicherstellen, dass Sie keine Projektdatei irgendwo haben.
%Vor%Das Problem wird hier beschrieben: Ссылка . Die Typoskript-Kompilierung ignoriert im Prinzip Ihre tsconfig.json
Mein Problem wurde durch die Datei boot.ts / main.ts verursacht.
Das Problem wurde behoben, indem in der ersten Zeile der Verweis auf die Datei "browser.d.ts" hinzugefügt wurde:
///<reference path="../node_modules/angular2/typings/browser.d.ts"/>
Ich denke nicht, dieses Problem zu lösen, indem Sie ///<reference path""/>
zu Ihrer main.ts hinzufügen (oder wo immer Sie Angular2 bootstrappen) ist die ideale Lösung. Das Problem, mit dem Sie konfrontiert werden, hängt mit der Platzierung von tsconfig.json
und dem Gulp-Skript zusammen, das Sie zur Einrichtung Ihres Angular2-Projekts verwenden. Bevor ich Ihnen weiterhelfen kann, können Sie Folgendes überprüfen?
typings
? %Code%? %Code%? globals
oder browser
oder etwas anderes benutzt? Das Verzeichnis, das Ihre gulp-typescript
-Datei enthält, wird als Stammverzeichnis Ihres TypeScript-Projekts betrachtet. Daher versuchen alle .ts / .d.ts Dateien in Ihrem TypeScript-Projekt kompiliert zu werden (einschließlich Dateien in Ihrem gulp-tsc
Ordner und / oder tsconfig.json
Ordner. Ich sehe, dass Sie ein "exclude" eingefügt haben: [" node_modules "] zu Ihrem tsconfig.json, so dass das Problem mit dem Namen nicht gefunden werden kann, kommt nicht aus dem typings
-Ordner (der wahrscheinlich aus Ihrem www/libs
-Ordner und / oder node_modules
-Ordner stammt.
Ich bin mir ziemlich sicher, dass du das Problem typings
auflöst, ohne www/libs
am Anfang deiner Bootstrap-Datei (main.ts am wahrscheinlichsten) hinzufügen zu müssen, indem du ein Extra zu deinem "exclude" in deinem% co_de hinzufügst % oder deine Skulptur in deinem Cannot find name Promise
.
Verstehen Sie mich nicht falsch, wenn Sie ///<reference path""/>
hinzufügen, wird Ihr Problem gelöst, aber ich halte es nicht für die ideale Lösung.
Ich habe hier alle möglichen Suggestionen ausprobiert und dachte, dass alles richtig konfiguriert sein sollte. Die Fehler zeigten sich immer noch.
Was in meinem Fall geholfen hat: Ich habe alle geöffneten Dateiregisterkarten in Visual Studio geschlossen und die Lösung erneut erstellt. Et voilà, die Fehler waren weg.
Uprate für VS2015 mit Angular2 RC5 :
(Diese Antwort geht davon aus, dass Sie im Allgemeinen dem angular2 Quick Start bei angular.io folgen und versuchen, ihn in einem VS2015-Projekt zum Laufen zu bringen.)
Fügen Sie der Datei main.ts die folgende Zeile hinzu (passen Sie den Pfad entsprechend der tatsächlichen Dateistruktur Ihres Projekts an):
/// & lt; Referenzpfad="../ typings / globals / core-js / index.d.ts" / & gt;
Die Typisierungsdatei, auf die oben verwiesen wird, wird beim Erstellen basierend auf dem Inhalt der Datei typings.json automatisch importiert.
Sie müssen möglicherweise auch eine Zeile zu Ihrer .csproj-Projektdatei hinzufügen, um das Projekt zu kompilieren (VS2015 Update 3 ignoriert derzeit die Zeile tsconfig.json für "experimentalDecorators"). Um dies zu tun, entladen Sie zunächst Ihr Projekt, indem Sie im Solution Explorer-Fenster mit der rechten Maustaste auf Ihr Projekt klicken und dann auf "Projekt entladen" klicken. Öffnen Sie Ihre .csproj-Datei und suchen Sie nach einem & lt; PropertyGroup & gt; Knoten, der andere & lt; Typescript ... & gt; Elemente. Fügen Sie vor dem schließenden Tag ein Element für TypeScript-Experimentaldekoratoren wie folgt hinzu:
& lt; PropertyGroup Condition="'$ (Konfiguration) | $ (Plattform)' == 'Debug | AnyCPU'" & gt;
...
& lt; TypeScriptExperimentalDecorators & gt; true & lt; / TypeScriptExperimentalDecorators & gt;
& lt; / PropertyGroup & gt;
Laden Sie Ihr Projekt und erstellen Sie es neu. Es sollte jetzt ohne Fehler kompilieren. Wenn weiterhin Probleme auftreten, stellen Sie sicher, dass Sie die neueste Version von TypeScript installiert haben (mindestens 1.8.x). Wechseln Sie in Visual Studio zu Extras & gt; Erweiterungen und Updates ... und suchen nach TypeScript. Installieren Sie die Erweiterung "TypeScript 1.8.x für Visual Studio 2015". Auch verfügbar unter Ссылка .
Wenn Sie nodejs installiert haben, können Sie TypeScript über die Befehlszeile installieren, indem Sie den folgenden Befehl eingeben: "npm install -g typescript". Überprüfen Sie Ihre installierte TypeScript-Version in einem Node.js-Befehlsfenster mit dem Befehl: "tsc -v". Wenn Sie diesen Befehl über ein Standardbefehlsfenster ausführen, wird wahrscheinlich nur "Version 1.0.3.0" anstelle der erwarteten Version 1.8.x angezeigt. (Weitere Informationen finden Sie unter Synchronisieren von Node.js mit VS2015 unter Ссылка )
Hoffe das hilft jemandem.
Für mich war das Thema nicht Angular2-spezifisch, da ich tatsächlich PolymerTS verwende. Mit dem Promise-Polyfill konnte ich keine Versprechen in meinen Polymer-Komponenten-TS-Dateien verwenden. Die Lösung für mich war die Installation des Typs für Promise von NPM mit dem folgenden Befehl.
%Vor%Für mich musste ich nicht einmal auf die d.ts-Datei in meiner Polymer ts-Datei verweisen. Habe gerade gearbeitet. Sie müssen jedoch die Datei "index.d.ts", die sich im Verzeichnis "es6-promise" befindet, einfach in die Datei ziehen, in der Sie das Promise-Objekt aufrufen möchten. Dadurch wird automatisch die Referenz für Sie erstellt.
Tags und Links angular typescript visual-studio-2015 asp.net-core-mvc