Ich mache das angular2
Tutorial unter folgender Adresse: https://angular.io/docs/ts/latest/tutorial/toh-pt3.html Ich habe die hero
Schnittstelle in einer einzelnen Datei unter dem app
Ordner abgelegt . In der Konsole ist dieser Fehler aufgetreten ::
app/app.component.ts(2,20): error TS2306: File 'app/hero.ts' is not a module.
[0] app/hero-detail.component.ts(2,20): error TS2306: File 'app/hero.ts' is not a module.
Wenn ich meine Schnittstellendatei in einen Heldenordner lege, verschwindet der Fehler. Dies wird in der Dokumentation nicht erwähnt. Was ist mit meinem Import falsch ?
Meine Importanweisung (am Anfang der Komponentendateien) in beiden app.components.ts
und hero-detail.component.ts
:
import {Component} from 'angular2/core';
import {Hero} from './hero';
Muss ich meine Importanweisung ersetzen durch: import {Hero} from './';
oder einfach den Code in einen Heldenordner legen ?
Ich habe den gleichen Fehler im gleichen Tutorial erhalten, weil ich das Schlüsselwort export für die Benutzeroberfläche vergessen hatte .
quelle
Wahrscheinlich haben Sie vergessen, "Export" in die Klassendefinition aufzunehmen.
->
Versuchen Sie es auch mit
Überprüfen Sie am Ende Ihrer hero.ts-Klasse den Namen der Großbuchstaben und den Klassennamen.
quelle
const
?Der Fehler liegt darin, dass Sie die Dateien nach dem Erstellen nicht gespeichert haben.
Versuchen Sie, die gesamte Datei zu speichern, indem Sie im Editor auf "Alle speichern" klicken.
Sie können die Anzahl der Dateien sehen, die nicht gespeichert wurden, indem Sie unter dem Menü "Datei" mit der blauen Farbe nachsehen.
quelle
Das Neustarten meines
ng serve
Prozesses hat bei mir funktioniertquelle
Für Leute, die den gleichen Fehler auf stackblitz bekommen
In der linken Seitenleiste der IDE finden Sie eine Registerkarte " Abhängigkeit" . Klicken Sie einfach auf die Schaltfläche "Aktualisieren" daneben und Sie können loslegen.
quelle
Wie ich immer erfahren habe, wenn ich meinem Projekt eine neue Datei hinzufüge, muss ich den ng-Server stoppen und neu starten.
quelle
Im Tutorial werden alle Komponenten und die Schnittstellendatei in dasselbe Verzeichnis gestellt, daher der relative Import,
'./hero'
wenn Sie sie an einen anderen Ort verschieben möchten, müssen Sie dies ändern.Bearbeiten: Der Code funktioniert möglicherweise noch, aber der Compiler beschwert sich, weil Sie versuchen, von einem falschen Speicherort zu importieren. Ich würde den Import einfach basierend auf Ihrer Struktur ändern. Beispielsweise:
Ich würde einfach den Import auf ändern
import {Hero} from '../hero'
.quelle
import {Hero} from './';
oderimport {Hero} from './hero';
. Ich frage mich, wie Schnittstellendateien am besten gespeichert werden können.Dieser Fehler wird dadurch verursacht, dass der Fehler des Servers
ng serve
eine neu hinzugefügte Datei automatisch aufnimmt . Um dies zu beheben, starten Sie einfach Ihren Server neu.Obwohl das Schließen des erneuten Öffnens des Texteditors oder der IDE dieses Problem löst, möchten viele Menschen nicht den ganzen Stress des erneuten Öffnens des Projekts durchstehen. Um dies zu beheben, ohne den Texteditor zu schließen ...
In dem Terminal, in dem der Server ausgeführt wird,
ctrl+C
, um den Server zu stoppen.ng serve
Das sollte funktionieren.
quelle
Ich stand vor dem gleichen Problem.
Ich habe meinen Server neu gestartet und es funktioniert gut. Scheint wie ein Fehler.
quelle
Neustart ng servieren
Ich hatte das gleiche Problem. Um nach dem Fehler zu suchen, habe ich den Fehler ausgewählt und versehentlich STRG + C (Kopieren) ausgeführt, wodurch ng serve beendet wurde. Beim Neustart von ng serve verschwand der Fehler :). Manchmal helfen Tippfehler und dicke Finger ;-)
quelle
Editor Problem. Wenn Sie neue Dateien erstellen, die Angular CLI nicht verwenden, gehen Sie zu Datei> Alle speichern (VS-Code), um den Editor über Ihre neuen Änderungen zu informieren. Führen Sie dann erneut "ng serve --open" aus. Es hat meins gelöst. Ich hoffe es hilft
quelle
Ich bin in VSC auf dasselbe Problem gestoßen. Hat den Editor neu gestartet und die Anwendung erneut gestartet. Es hat gut funktioniert.
quelle
Ich stellte fest, dass ich nicht nur Visual Studio Code neu starten musste, sondern auch den Knotenserverprozess, bevor ich eine gute Kompilierung erhalten konnte.
quelle
Ich hatte das gleiche Problem, habe versucht, meinen Server neu zu starten und den Editor erneut zu öffnen, aber der Neustart des Computers hat die Magie ausgelöst.
PS: Auf einem Windows-Computer trat ein Problem auf, das beim Verschieben des Moduls in einen neuen Ordner auftrat.
quelle
Ich hatte ein ähnliches Problem. Ich habe Held statt Held geschrieben
Importieren Sie Folgendes:
quelle
Manchmal tritt dieser Fehler auf, wenn die .ts-Datei nicht gespeichert wird. Stellen Sie also sicher, dass alle Dateien im Projekt gespeichert sind. Andernfalls versuchen Sie, den Editor neu zu starten.
quelle
Öffnen Sie die Eingabeaufforderung und wechseln Sie in den App-Ordner, z
D:\angular-tour-of-heroes\src\app
Erstellen Sie dann eine neue Datei mit dem folgenden Befehl:
Dadurch wird ein erstellt
hero.ts
Datei erstellt. Dann können Sie den Exportcode einfügen, und der Fehler ist verschwunden.quelle
Sie sollten alle Dateien speichern. Zum Beispiel HTML-, CSS-, Komponenten.ts-, Modul- und Modelldateien. Öffnen Sie jede Datei und drücken Sie Strg-S. Das hat bei mir funktioniert
quelle
In meinem Fall hatte ich vergessen, Änderungen an der Datei 'app / hero.ts' zu speichern. Nach dem Speichern und Neustarten des Dienstes wurde das Problem behoben.
quelle
Mein Vorsatz,
In meinem Fall habe ich eine Modelldatei erstellt und leer gelassen.
Wenn ich es in ein anderes Modell importiere, gibt es mir einen Fehler. Schreiben Sie daher die Definition, wenn Sie eine Modell-Typoskriptdatei erstellen.
quelle
Veränderung
zu
Stellen Sie vor dem Kompilieren sicher, dass Sie die .TS-Datei gespeichert haben.
quelle
Fügen Sie dies hinzu, bevor Sie die Klasse exportieren
quelle