【发布时间】:2017-02-18 21:54:29
【问题描述】:
我有以下代码:
function asyncFunc1(): Promise<string> {
return new Promise<string>(x => x);
}
产生以下错误:
TS2304:找不到名称“承诺”
所以我把它改成明确声明'Promise':
///<reference path="../typings/modules/bluebird/index.d.ts" />
import * as Promise from 'bluebird';
function asyncFunc1(): Promise<string> {
return new Promise<string>(x => x);
}
现在我收到以下错误:
TS2529:重复的标识符“Promise”。编译器保留名称 包含异步函数的模块的顶级范围内的“承诺”
我该如何解决这个悖论?
【问题讨论】:
-
tsconfig 中的 compilerOptions.target 是什么?
-
@Paarth 我的目标是 es5
-
你是否安装了任何其他定义 Promise 的模块,例如 core-js 或 es6-promise?
-
该错误表明 Promise 被 TypeScript 保留。您是否尝试过导入
import * as Bluebird from 'bluebird';并将其用作function asyncFunc1(): Bluebird<string>? -
@Catalyst 我真的不需要 Blubird。我添加它以消除第一个错误:TS2304:找不到名称'Promise'。请再仔细阅读我的问题。
标签: javascript typescript promise