Ich habe
Experimentelle Unterstützung für Dekorateure ist eine Funktion, die in zukünftigen Versionen geändert werden kann. Setzen Sie die Option 'experimentalDecorators', um diese Warnung zu entfernen.
sogar meine compilerOptions in tsconfig.json haben Einstellungen:
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
Was seltsam ist, dass einige zufällige Klassen, die Dekoratoren verwenden, diese Warnung nicht anzeigen, sondern im selben Projekt ruhen.
Was könnte ein solches Verhalten des TypeScript-Compilers verursachen?
Obwohl VS Code ein großartiger Editor für TypeScript-Projekte ist, muss er von Zeit zu Zeit angepasst werden. Oftmals führen bestimmte Dateien ohne Vorwarnung dazu, dass sie ausflippen und sich beschweren. Meistens scheint es das Problem zu sein, alle geöffneten Dateien zu speichern und zu schließen und dann tsconfig.json
zu öffnen. Danach sollten Sie in der Lage sein, die fehlerhafte Datei ohne Fehler erneut zu öffnen. Wenn es nicht funktioniert, schäumen, spülen und wiederholen.
Wenn Ihr tsconfig.json
seine Quelldateien mithilfe des Arrays files
angibt, funktioniert IntelliSense nur dann ordnungsgemäß, wenn auf die betreffende Datei so verwiesen wird, dass VS Code sie durch Durchlaufen der Eingabedateibaumstruktur finden kann.
Bearbeiten: Der Befehl "Fenster neu laden" (vor einiger Zeit hinzugefügt) sollte dieses Problem ein für alle Mal lösen.
Dieser Fehler tritt auch auf, wenn Sie den Ordner "src" für Ihren Arbeitsbereichsordner auswählen.
Wenn der Stammordner, Ordner, in dem sich "src", "node_modules" befinden, ausgewählt wird, verschwindet der Fehler
muss TypeScript.tsdk
zu meinem .vscode/settings.json
hinzufügen:
"TypeScript.tsdk": "node_modules/TypeScript/lib"
erstellen Sie in Ihrem Projekt die Datei tsconfig.json und fügen Sie diese Zeilen hinzu
{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}
"javascript.implicitProjectConfig.experimentalDecorators": true
Wird dieses Problem lösen.
Diese Antwort richtet sich an Personen, die ein Javascript -Projekt und kein TypeScript -Projekt verwenden. Anstelle einer tsconfig.json -Datei können Sie auch eine jsconfig.json -Datei verwenden.
In dem speziellen Fall, dass Sie die Dekoratoren Warnung haben, schreiben Sie in die Datei:
{
"compilerOptions": {
"experimentalDecorators": true
}
}
Bei den fraglichen Buggy-Verhalten ist es immer besser, das "include" in der Konfigurationsdatei anzugeben und den Editor neu zu starten. Z.B.
{
"compilerOptions": {
"target": "ES6",
"experimentalDecorators": true
},
"include": [
"app/**/*"
],
"exclude": [
"node_modules"
]
}
Öffnen Sie die Datei settings.json
an folgendem Speicherort <project_folder>/.vscode/settings.json
oder Sie können die Datei wie unten beschrieben über das Menü öffnen
VSCode -> File -> Preferences -> Workspace Settings
Fügen Sie dann die folgenden Zeilen in die Datei settings.json
ein
{
"TypeScript.tsdk": "node_modules/TypeScript/lib",
"enable_TypeScript_language_service": false
}
Das ist alles. Es wird keine Warnung/Fehlermeldung bezüglich " experimentalDecorators " angezeigt.
Fügen Sie die folgenden Zeilen in tsconfig.json hinzu und starten Sie VS Code neu.
{
"compilerOptions": {
"experimentalDecorators": true,
"target": "es5",
"allowJs": true
}
}
Ich hatte dieses Problem vor kurzem unter Visual Studio 2017 - es stellte sich heraus, dass es durch ein "Feature" von VS verursacht wurde - tsconfig.json zu ignorieren, wenn die Build-Aktion nicht auf Content gesetzt ist.
Durch Ändern der Build-Aktion in Content und erneutes Laden der Lösung wurde das Problem behoben.
Nicht um den Punkt zu beleuchten, aber achten Sie darauf, das Folgende hinzuzufügen
unter Datei >> Einstellungen >> Einstellungen
"javascript.implicitProjectConfig.experimentalDecorators": true
dies hat das Problem für mich behoben und ich habe einige Vorschläge ausprobiert, die ich hier und an anderen Orten gefunden habe.
Der Klarheit und Dummheit halber.
1) Öffnen Sie .vscode/settings.json.
2) Fügen Sie "TypeScript.tsdk": "node_modules/TypeScript/lib" hinzu.
3) Speichern Sie es.
4) Starten Sie Visual Studio Code neu.
Bitte überprüfen Sie, ob Sie in Ihrem VS-Code den Ordner des gesamten Projekts und nicht nur den Ordner src ausgewählt haben. Wenn Sie nämlich nur den Ordner src öffnen, befindet sich die Datei ts.config.json (im Projektordner) nicht im Gültigkeitsbereich VS erkennt die Parameter des experimentellen Dekorateurs nicht.
In meinem Fall wurden alle mit diesem Problem verbundenen Probleme behoben.
Wenn Sie cli zum Kompilieren von * .ts-Dateien verwenden, können Sie experimentalDecorators mit dem folgenden Befehl festlegen:
tsc filename.ts --experimentalDecorators "true"
Wenn Sie in Visual Studio arbeiten. Sie können dieses Update versuchen
Fügen Sie diesem Abschnitt TypeScriptExperimentalDecorators hinzu (siehe Abbildung)
weitere Informationen finden Sie unter this location.
Öffnen Sie den gesamten Projektordner anstelle von Projektname/src
tsconfig.json hat keinen src-Ordner mehr
Ich habe die Warnung korrigiert, indem ich "baseUrl": "" aus der Datei tsconfig.json entfernt habe
Beim Erstellen eines Injectable Services in Angular 2 trat das gleiche Problem auf. Ich habe alle Informationen in der Datei tsconfig.json gespeichert. Dieser Fehler trat jedoch in der Zeile ColorsImmutable auf.
@Injectable()
export class ColorsImmutable {
Das Problem wurde behoben, indem der Service auf Modul- oder Komponentenebene mithilfe des Provider-Arrays registriert wurde.
providers:[ColorsImmutable ],
Sie können es auch mit ng build
versuchen. Ich habe die App gerade neu erstellt und jetzt entspricht sie nicht mehr.
Ich habe diese Option zu tsconfig.json, "baseUrl": "front-end"
hinzugefügt. Ersetzen Sie das Front-End durch den Namen Ihres angle-cli-Projekts.
Dieses Problem kann auftreten, wenn Sie eine TS-Datei öffnen, die außerhalb des Projekts vorhanden ist. Zum Beispiel verwende ich Lerna und hatte eine Datei aus einem anderen Paket geöffnet. Obwohl dieses andere Paket ein eigenes tsconfig mit experimentellen Dekoratoren hatte, wird es von VsCode nicht berücksichtigt.