Estoy tratando de usar Typecript para mi AWS Lambda y recibo los siguientes errores donde uso promesas.
error TS2693: 'Promesa' solo se refiere a un tipo, pero aquí se está utilizando como 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}"`));
Versiones
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",
Contenido de tsconfig.json
{
"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
}
},
...
Intenté con la solución mencionada en I get: [ts] 'Promise' solo se refiere a un tipo, pero aquí se está utilizando como un valor, pero sin suerte.
javascript
typescript
promise
kalyanvgopal
fuente
fuente
return
.responsePromise = new Promise((resolve, reject) => { reject(new Error("missing is needed data"))})
Lo intenté. Pero no ayudó con el problema.responsePromise
declara exactamente ?Respuestas:
Tuve el mismo problema con el
aws-sdk
y lo resolví usando"target": "es2015"
. Este es mitsconfig.json
archivofuente
@types/aws-lambda
están desactualizados. Amazon envía tipos de mecanografía con el SDK oficial . No hay necesidad de DefinitelyTyped.Encuentra el mismo error hoy y resuélvelo con:
Actualizar:
añadir:
fuente
import {Promise} from 'es6-promise'
;import { Promise } from '../node_modules/es6-promise/es6-promise';
, sin embargo, parece estar funcionando bien. ¿Por qué TS no podría encontrar los tipings instalados?Resolví esto agregando el siguiente código al archivo tsconfig.json.
fuente
Resuelto cambiando el objetivo en compilerOptions.
fuente
Aquí está mi consejo. Probado con vscode 1.21.1 (en MAC)
Poner abajo config a tsconfig.json
en compilador
Reiniciar IDE (se requiere esta acción: D)
fuente
Tuve este error pero lo resolví usando este comando, mi nombre de archivo ts es promises-fs.ts:
y el error se fue
fuente
Agregue la siguiente línea al archivo donde se está generando el error. Esto debería solucionar el problema
PD: esta definitivamente no es la solución óptima
fuente
TS
si vas a hacer algo como esto? Quiero decir, ¿qué sentido tiene entonces?Finalmente tsc comenzó a funcionar sin ningún error. Pero múltiples cambios. Gracias a Sandro Keil , Pointy & unional
tsconfig.json
Gruntfile.js
fuente
Tuve el mismo problema con el mecanografiado y el
aws-sdk
. La solución fue cambiar el objetivo aes6
.Mi
tsconfig.json
archivo completo :fuente
Tuve el mismo problema hasta que agregué la siguiente matriz lib en typeScript 3.0.1
tsconfig.json
fuente
Bueno, esto podría ser contra-intuitivo, pero resolví esta adición
esnext
a milib
.El FIX, como lo sugiere el compilador es
fuente
Core-js no funcionó para mí ya que causó otros problemas, sin embargo, simplemente instalando la última versión de
npm i @types/es6-promise --save-dev
eliminé los problemas. Los problemas para mí surgieron de compilar un sdk que usaba rxjs. Aquí está el error que estaba recibiendo:fuente
Si está utilizando el repositorio DefinitelyTyped en su proyecto, puede estar experimentando este problema reciente .
Una solución decente que podría usar (aparte de esperar una compilación actualizada del archivo de definiciones o refactorizar su código TS) es especificar una versión explícita + compilación para los tipos de core-js en lugar de dejar que Visual Studio elija la última / más reciente . Encontré uno que parece no verse afectado por este problema (al menos en mi caso), puede usarlo reemplazando la siguiente línea de su archivo package.jso n:
Con el siguiente:
Esto solucionó mi problema para siempre. Sin embargo, es muy recomendable eliminar la versión explícita + referencia de compilación tan pronto como se publique el problema.
Para obtener más información sobre este tema, también puede leer esta publicación de blog que escribí sobre el tema.
fuente
Tuve el mismo problema y esto me salvó del problema en segundo lugar:
escribe en la consola esto:
en el archivo donde el problema es copiar, pegue esto:
fuente
Simplemente cambie el objetivo a "ES2017" en el archivo tsconfig.json.
este es mi archivo tsconfig.json
fuente
npm i --save-dev @ types / es6-promise
después del comando up, será mejor que compruebe tsconfig.json y asegúrese de que el "objetivo" debe ser mejor que "es6". tal vez tsc no es compatible con es5 todavía.
fuente
Ninguna de las respuestas votadas aquí funciona para mí. Aquí hay una solución garantizada y razonable. Coloque esto cerca de la parte superior de cualquier archivo de código que use Promise ...
fuente
Habiendo pasado mucho tiempo tratando de arreglar esto. No tuve suerte con ninguna solución que proporcionara aquí o en otro lado.
Pero luego se dio cuenta de que no se trataba solo de resolver el problema. Pero también debe reiniciar el VSCODE para que surta efecto.
fuente
Tuve el mismo error y lo arreglé con esta configuración:
Archivo: tsconfig.json
fuente
Tenga en cuenta que si está ejecutando el comando tsc con un nombre de archivo, es decir:
entonces se ignora el archivo de configuración del compilador tsconfig.json. La solución es ejecutar el comando tsc por sí solo, en cuyo caso se compilarán todos los archivos .ts del directorio, a menos que haya editado tsconfig.json para incluir un conjunto de archivos.
consulte 'uso de la propiedad de archivos' ... https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
fuente
El mismo error aquí. Arreglé esto, usando "módulo": "ES6" en tsconfig.
fuente
Me deshice de este mismo error en
index.ts
con estas propiedades combinadas:En tsconfig.json:
Y en package.json:
fuente