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.
