Búsqueda de sitios web

Async no funciona Atom TypeScript


Estoy aprendiendo TypeScript usando el IDE Atom.

La pregunta es, cuando pruebo el siguiente código

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

Recibo un error

Una función o método asíncrono en ES5/ES3 requiere el constructor 'Promise'.

Sin embargo, si pego el código en https://www.typescriptlang.org/play/index.html

Se compila correctamente. Además, no estoy recibiendo ninguna sugerencia cuando uso Promise en Atom.

Respuesta #1

Suponiendo que está apuntando a ES5, necesita asegurarse de incluir los valores de lib apropiados en sus opciones del compilador.

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

...así como introducir cualquier polyfill necesario. Por favor, consulte la documentación de async en versiones anteriores en las notas de la versión de TypeScript.

Respuesta #2

Aquí hay una configuración de TypeScript que funciona (tsconfig.json) que uso como mi configuración mínima para TypeScript con webpack:

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

Y aquí está la versión dirigida a Node.js:

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