Estoy tratando de usar Typescript para mi AWS Lambda y obtengo los siguientes errores donde sea que use promesas.
error TS2693: 'Promise' solo se refiere a un tipo, pero aquí se usa como un valor.
Intenté usar las siguientes variaciones en el código.
Usando el constructor Promise
responsePromise = new Promise((resolve, reject) => { return reject(new Error(`missing is needed data`)) })usando Promise.reject
responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`));Las siguientes son las versiones en mis dependencias de desarrollo:
"typescript": "^2.2.2" "@types/aws-lambda": "0.0.9", "@types/core-js": "^0.9.40", "@types/node": "^7.0.12", { "compileOnSave": true, "compilerOptions": { "module": "commonjs", // "typeRoots" : ["./typings", "./node_modules/@types"], "target": "es5", // "types" : [ "core-js" ], "noImplicitAny": true, "strictNullChecks": true, "allowJs": true, "noEmit": true, "alwaysStrict": true, "preserveConstEnums": true, "sourceMap": true, "outDir": "dist", "moduleResolution": "Node", "declaration": true, "lib": [ "es6" ] }, "include": [ "index.ts", "lib/**/*.ts" ], "exclude": [ "node_modules", "**/*.spec.ts" ] }Estoy usando grunt-ts con la siguiente configuración para ejecutar la tarea ts.
ts: { app: { tsconfig: { tsconfig: "./tsconfig.json", ignoreSettings: true } }, ...Probé con la solución mencionada en I get: [ts] 'Promise' solo se refiere a un tipo, pero se usa como un valor aquí, pero no tuve suerte.
Tuve el mismo problema con aws-sdk y lo resolví usando "target": "es2015" . Este es mi archivo tsconfig.json .
{ "compilerOptions": { "outDir": "./dist/", "sourceMap": false, "noImplicitAny": false, "module": "commonjs", "target": "es2015" }, "include": [ "src/**/*" ], "exclude": [ "node_modules", "**/*.spec.ts" ] }Encuentra el mismo error hoy y lo resolvió con:
npm i --save-dev @types/es6-promiseActualizar:
agregar:
import {Promise} from 'es6-promise'Resolví esto agregando el siguiente código al archivo tsconfig.json.
"lib": [ "ES5", "ES2015", "DOM", "ScriptHost"]