web-dev-qa-db-de.com

Warnung vor experimentellen Dekoratoren in der TypeScript-Kompilierung

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?

167
bensiu

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.

148
linguamachina

Ich muss Folgendes in die settings.json-Datei von vscode einfügen, um die Warnung zu entfernen.

"javascript.implicitProjectConfig.experimentalDecorators": true

VSCode -> Einstellungen -> Einstellungen

enter image description here

138
Manoj Paul

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

86
Semir Deljić

muss TypeScript.tsdk zu meinem .vscode/settings.json hinzufügen:

"TypeScript.tsdk": "node_modules/TypeScript/lib"
23
beewest

erstellen Sie in Ihrem Projekt die Datei tsconfig.json und fügen Sie diese Zeilen hinzu

{
    "compilerOptions": {
        "experimentalDecorators": true,
        "allowJs": true
    }
}
22
Muhammed Moussa

Datei -> Einstellungen -> Einstellungen

14
Dmitriy Botov
"javascript.implicitProjectConfig.experimentalDecorators": true

Wird dieses Problem lösen.

10
Rajesh Pal

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"
    ]
}
9
Pere Pages

Ö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

experimentalDecorators 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
    }
}
7
Geetesh

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.

7

Nicht um den Punkt zu beleuchten, aber achten Sie darauf, das Folgende hinzuzufügen

  • Arbeitsbereichseinstellungen nicht Benutzereinstellungen

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.

7
petey m
  1. Öffnen Sie VScode.
  2. Drücken Sie Strg + Komma
  3. Folgen Sie den Anweisungen im Screenshot
    1. Suche nach experimentellen Dekoratoren
    2. Bearbeite es
3
Mostafa

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.

3
LEMUEL ADANE

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.

3
dayanrr91

Wenn Sie cli zum Kompilieren von * .ts-Dateien verwenden, können Sie experimentalDecorators mit dem folgenden Befehl festlegen:

 tsc filename.ts --experimentalDecorators "true"
2
Koji D'infinte

Wenn Sie in Visual Studio arbeiten. Sie können dieses Update versuchen

  1. Entladen Sie Ihr Projekt aus Visual Studio
  2. Wechseln Sie in Ihr Projekt-Ausgangsverzeichnis und öffnen Sie die Datei "csproj".
  3. Fügen Sie diesem Abschnitt TypeScriptExperimentalDecorators hinzu (siehe Abbildung)

    enter image description here

    1. Laden Sie das Projekt in Visual Studio neu.

weitere Informationen finden Sie unter this location.

2

Öffnen Sie den gesamten Projektordner anstelle von Projektname/src

tsconfig.json hat keinen src-Ordner mehr

2
Andrew Yavorsky

Ich habe die Warnung korrigiert, indem ich "baseUrl": "" aus der Datei tsconfig.json entfernt habe

1
D. Greene

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 ],
1
Mohammad Javed

Sie können es auch mit ng build versuchen. Ich habe die App gerade neu erstellt und jetzt entspricht sie nicht mehr.

0
Leandro hereñu

Ich habe diese Option zu tsconfig.json, "baseUrl": "front-end" hinzugefügt. Ersetzen Sie das Front-End durch den Namen Ihres angle-cli-Projekts.

0
Sean Maxwell

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.

0
sparebytes