typescript - Fel: Ställ in alternativet 'experimentalDecorators' i din 'tsconfig' eller 'jsconfig' för att ta bort denna varning


Jag försöker få ett grundläggande dekoratorexempel att fungera i TypeScript utan någon framgång.

Jag ser ständigt felmeddelandet:

Experimentellt stöd för dekoratörer är en funktion som kan komma att ändras i en framtida version. Ställ in alternativet 'experimentalDecorators' i din 'tsconfig' eller 'jsconfig' för att ta bort denna varning.

Min tsconfig.json ser ut som följer (tsconfig i samma mapp som index.ts):

{
    "compilerOptions": {
        "target": "esnext",
        "watch": true,
        "experimentalDecorators": true,
    }
}

Detta verkar vara ett ganska vanligt problem och har frågats flera gånger på SO, t.ex.: Experimentella dekoratorer varning vid TypeScript-kompilering

Jag har försökt alla lösningar utan framgång. Dessutom verkar mitt problem inte vara relaterat till vscode. Jag får samma fel när jag försöker köra filen från terminalen.

Vad jag har försökt hittills:

  1. Starta om VC Code
  2. EmitDecoratorMetaData: sant
  3. Tillåt experimentella dekoratorer som en implicit konfiguration i VC Code i VC Code
  4. Ställ in TS-version manuellt
  5. Skapa ny tsconfig.json

REDIGERA

index.ts

function f(): any {
    console.log("f(): evaluated");
    return function (target, propertyKey: string, descriptor: PropertyDescriptor) {
        console.log("f(): called");
    }
}

function g(): any {
    console.log("g(): evaluated");
    return function (target, propertyKey: string, descriptor: PropertyDescriptor) {
        console.log("g(): called");
    }
}

class C {
    @f()
    @g()
    method() {}
}

Svar #1

Jag märkte att VS Code har ett alternativ i inställningarna för att aktivera experimentalDecorators för filer som inte är en del av ett projekt. Är dina kodfiler en del av ditt projekt?

Svar #2

Du kan ta bort varningen från CLI med flaggan som uttryckligen anges i kommandoraden:

tsc index.ts --experimentalDecorators

Ett alternativ är att lista index.ts i files-sektionen i tsconfig.

{
  "files": ["index.ts"],
  "compilerOptions": {
    "target": "esnext",
    "experimentalDecorators": true
  }
}

Du kan kalla på CLI utan några argument och det bör köras utan fel.

tsc 

Jag lyckades dock inte återskapa felet i VS Code.

Relaterade artiklar