Async fungerer ikke Atom TypeScript


Jeg lærer TypeScript ved å bruke Atom IDE.

Spørsmålet er, når jeg prøver koden nedenfor

async function fn1() {
    throw new Error("Not implemented yet");
}

Jeg får en feil

En asynkron funksjon eller metode i ES5/ES3 krever 'Promise'-konstruktøren.

Men hvis jeg limer inn koden på https://www.typescriptlang.org/play/index.html

det kompilerer korrekt. Dessuten får jeg ingen forslag når jeg bruker Promise i Atom.

Svar #1

Forutsatt at du sikter mot ES5, må du sørge for å inkludere de riktige lib-verdiene i kompilatorinnstillingene dine.

{
    "compilerOptions": {
        "lib": ["dom", "es2015.promise", "es5"]
    }
}

...samt introdusere eventuelle nødvendige polyfills. Vennligst se dokumentasjonen for nednivå async i TypeScript-utgivelsesnotatene.

Svar #2

Her er en fungerende TypeScript-konfigurasjon (tsconfig.json) som jeg bruker som min minimale konfigurasjon for webpacked TypeScript:

{
  "compilerOptions": {
    "target": "es5",
    "types": ["jquery"],
    "lib": ["dom", "es2015"],
    "baseUrl": "."
  },
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}

Og her er Node.js-målrettede versjon:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "outDir": "../dist/server",
    "types": ["node"],
    "baseUrl": ".",
    "noImplicitAny": true
  },
  "compileOnSave": false,
  "filesGlob": [
    "**/*.ts"
  ],
  "files": [
    "server.ts"
  ],
  "atom": {
    "rewriteTsconfig": false
  }
}