我读了this SO question但很难得到承诺使用打字稿 . 希望我们能够做出明确的指导 . 这适用于服务器/节点项目 . 我实际上正在使用最新的iojs,但将ES5作为输出 .
$ tsd query es6-promise --action install --save
$ npm install --save es6-promise
// typescript code:
/// <reference path="../../typings/es6-promise/es6-promise.d.ts"/>
var Promise = require("es6-promise").Promise;
require('es6-promise').polyfill();
function test():Promise {
var p:Promise = new Promise();
return p;
}
这是错误的:
Cannot find name 'Promise'.
//或者:
var p = new Promise<string>((resolve, reject) => {
resolve('a string');
});
//error=> Untyped function calls may not accept type arguments.
从您自己的节点服务器端代码返回Promise的推荐方法是什么?
引用:
5 回答
main.ts
tsconfig.json
compileandrun.sh
以下是在v2.1.1上,目标设置为
es5
通过安装
es6-promise
然后将其添加到文件顶部,我能够使用async/await
的Promises:这到
tsconfig.json
使用
import { Promise }
表格对我来说不起作用,因为其他库崩溃了(例如:axios)我需要将其填充为不同的框架(特别是axios);我不需要真正创建自己的承诺,所以这些解决方案都不适合我 . 幸运的是,答案很简单,如果隐藏得很好:
将以下内容添加到
package.json
:在tsconfig.json中将目标更改为“es6”
或者为Visual Studio 2015安装TypeScript也可以在不修改tsconfig.json的情况下解决此问题
https://www.microsoft.com/en-us/download/details.aspx?id=48593