typescript - Hur ska jag använda ES2020 i Angular?


Här är min tsconfig.json-fil:

    {
      "compileOnSave": false,
      "compilerOptions": {
        "baseUrl": "./",
        "outDir": "./dist/out-tsc",
        "sourceMap": true,
        "declaration": false,
        "module": "es2015",
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "importHelpers": true,
        "target": "es6",
        "typeRoots": [
          "node_modules/@types"
        ],
        "lib": [
          "es2018",
          "dom"
        ]
      }
    }

När jag ändrade lib och målversion från es2018 till es2020 får jag följande fel:

tsconfig.json(13,15): fel TS6046: Argument för alternativet '--target' måste vara: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'esnext'.

Svar #1

Stöd för es2020 introducerades i TypeScript 3.8.

Du måste uppgradera till Angular 9.1 (eller senare) för att kunna använda TypeScript 3.8.

Svar #2

Jag använde 11.2.14 versionen av Angular, men kunde fortfarande inte ha "target": "ES2020" i tsconfig.json.

Min konstruktion misslyckades på:

Fel: ./src/app/shared/validators/form.validators.ts 10:21 Modulparsing misslyckades: Ovänad token (10:21) Filen behandlades med dessa loaders:

  • ./node_modules/@angular-devkit/build-optimizer/src/build-optimizer/webpack-loader.js
  • ./node_modules/@ngtools/webpack/src/index.js

Du kan behöva en ytterligare loader för att hantera resultatet av dessa loaders. ...

Enligt detta GitHub-ärende är felet relaterat till WebPack (min version 4.44.2). Och stöd för ES2020 kommer med WebPack 5.

Relaterade artiklar