我想在我的AWS Lambda中使用Typescript,但是每当我使用promises时,我会得到以下错误:
error TS2693: 'Promise'仅引用了一种类型,但在此处被用作值。
我尝试在代码中使用以下变化
使用Promise构造函数
responsePromise = new Promise((resolve, reject) => {
return reject(new Error(`missing is needed data`))
})
使用 Promise.reject
responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`));
版本
以下是我开发依赖项中的版本:
"typescript": "^2.2.2"
"@types/aws-lambda": "0.0.9",
"@types/core-js": "^0.9.40",
"@types/node": "^7.0.12",
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"
]
}
我正在使用grunt-ts来运行ts任务,以下是我的配置。
ts: {
app: {
tsconfig: {
tsconfig: "./tsconfig.json",
ignoreSettings: true
}
},
...
我尝试了在我得到:[ts] 'Promise'只是引用一个类型,但在这里被用作值中提到的解决方法,但没有成功。
return
即可。 - PointyresponsePromise
到底是如何声明的? - PointynoEmit
是什么?http://www.typescriptlang.org/docs/handbook/compiler-options.html - unionaltsconfig.json
文件在正确的目录下!我的文件在一个比引发 ts2693 错误的文件更低的目录中。 - johnsimer