Búsqueda de sitios web

async await - TypeScript se queja con y sin lib


Estoy intentando agregar una función asincrónica en un proyecto de TypeScript. El código se ve así:

chrome.tabs.onUpdated.addListener(async (id, c, t) => { ... });

TypeScript se queja:

error TS2705: Una función o método async en ES5/ES3 requiere el constructor 'Promise'. Asegúrate de tener una declaración para el constructor 'Promise' o incluye 'ES2015' en tu opción --lib

Cuando agrego lib: ['es2015'] a tsconfig, TypeScript comienza a quejarse de todas las llamadas a console.log diciendo que console no está definido.

Respuesta #1

Las librerías predeterminadas para es5 son DOM,ES5, así que si especificas es2015 también necesitarás añadir dom explícitamente ya que console está definido en la librería dom. Ejemplo de tsconfig.json:

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

Typescript tiene un enfoque modular para las bibliotecas predeterminadas, por lo que puedes incluir solo lo que esté disponible según tu entorno.

Artículos relacionados