kal*_*pal 137 javascript promise typescript
我正在尝试使用Typescript作为我的AWS Lambda,我在使用promises时遇到以下错误.
error TS2693: 'Promise' only refers to a type, but is being used as a value here.
我尝试在代码中使用以下变体
使用Promise构造函数
responsePromise = new Promise((resolve, reject) => {
return reject(new Error(`missing is needed data`))
})
Run Code Online (Sandbox Code Playgroud)
使用Promise.reject
responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`));
Run Code Online (Sandbox Code Playgroud)
以下是我的dev依赖项中的版本:
"typescript": "^2.2.2"
"@types/aws-lambda": "0.0.9",
"@types/core-js": "^0.9.40",
"@types/node": "^7.0.12",
Run Code Online (Sandbox Code Playgroud)
{
"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"
]
}
Run Code Online (Sandbox Code Playgroud)
我正在使用具有以下配置的grunt-ts来运行ts任务.
ts: {
app: {
tsconfig: {
tsconfig: "./tsconfig.json",
ignoreSettings: true
}
},
...
Run Code Online (Sandbox Code Playgroud)
我尝试使用我得到的解决方案:[ts]'Promise'仅指一种类型,但在这里被用作值但没有运气.
小智 116
我有同样的问题,aws-sdk我通过使用解决了它"target": "es2015".这是我的tsconfig.json档案.
{
"compilerOptions": {
"outDir": "./dist/",
"sourceMap": false,
"noImplicitAny": false,
"module": "commonjs",
"target": "es2015"
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
小智 79
今天遇到同样的错误并解决了它:
npm i --save-dev @types/es6-promise
Run Code Online (Sandbox Code Playgroud)
更新:
加:
import {Promise} from 'es6-promise'
Run Code Online (Sandbox Code Playgroud)
Nil*_*esh 34
我通过在tsconfig.json文件中添加以下代码解决了这个问题.
"lib": [
"ES5",
"ES2015",
"DOM",
"ScriptHost"]
Run Code Online (Sandbox Code Playgroud)
Man*_*i S 18
通过在compilerOptions中更改目标来解决.
{
"compilerOptions": {
"module": "es2015",
"target": "es2015",
"lib": [
"es2016",
"dom"
],
"moduleResolution": "node",
"noImplicitAny": false,
"sourceMap": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "./public/js/app"
},
"exclude": [
"node_modules",
"public/js",
"assets/app/polyfills.ts"
],
"angularCompilerOptions": {
"skipMetadataEmit": true
}
}
Run Code Online (Sandbox Code Playgroud)
Nha*_*Cao 10
这是我的提示.使用vscode 1.21.1测试(在MAC上)
将下面的配置放到tsconfig.json中
"lib": [
"es2016",
"dom"
]
Run Code Online (Sandbox Code Playgroud)
到 compilerOptions
重新启动IDE(此操作是必需的:D)
我遇到了此错误,但通过使用以下命令解决了该问题,我的ts文件名为promises-fs.ts:
tsc promises-fs.ts --target es6 && node promises-fs.js
Run Code Online (Sandbox Code Playgroud)
错误消失了
将以下行添加到文件中引发错误.这应该解决问题
declare var Promise: any;
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,直到我在 typeScript 3.0.1 中添加了以下 lib 数组
tsconfig.json
{
"compilerOptions": {
"outDir": "lib",
"module": "commonjs",
"allowJs": false,
"declaration": true,
"target": "es5",
"lib": ["dom", "es2015", "es5", "es6"],
"rootDir": "src"
},
"include": ["./**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
Run Code Online (Sandbox Code Playgroud)
我index.ts用这些组合属性消除了同样的错误:
在 tsconfig.json 中:
"compilerOptions": {
"target": "ES6"
Run Code Online (Sandbox Code Playgroud)
在 package.json 中:
"main": "index.ts",
"scripts": {
"start": "tsc -p tsconfig.json && node index.js"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80075 次 |
| 最近记录: |