如何将 Typescript 与本机 ES6 Promise 一起使用另请参见
我是Typescript的完全初学者,我想知道是否可以在Typescript中使用ES6承诺,以及我必须做些什么才能使它们正常工作。我正在运行节点 0.11.14,在编译过程中收到错误“找不到名称'Promise'”
我是Typescript的完全初学者,我想知道是否可以在Typescript中使用ES6承诺,以及我必须做些什么才能使它们正常工作。我正在运行节点 0.11.14,在编译过程中收到错误“找不到名称'Promise'”
当前的lib.d.ts没有定义承诺,所以你需要一个额外的定义文件,这就是为什么你得到编译错误。
例如,您可以使用(如@elclanrs说的)将es6-promise包与WifistlyTyped:es6-promise定义中的定义文件一起使用。
然后,您可以像这样使用它:
var p = new Promise<string>((resolve, reject) => {
resolve('a string');
});
编辑在面向 ES6(使用 TypeScript 编译器)时,您可以在没有定义的情况下使用它 - 请注意,您仍然需要在运行时中存在 Promise(因此它在旧浏览器中不起作用:)) 添加/编辑以下内容到您的:tsconfig.json
"compilerOptions": {
"target": "ES6"
}
编辑 2当TypeScript 2.0问世时,事情会有所变化(尽管上面仍然有效),但定义文件可以直接用npm安装,如下所示:
npm install --save @types/es6-promise
- 源
编辑3使用有关使用这些类型的详细信息更新答案。
创建仅作为内容的文件(如果还没有 package.json)。调用和 .第一个 npm 安装命令将更改 ,以包含 es6-promise 作为依赖项。tsc --init 将为您创建一个文件。package.json
{ }
npm install --save @types/es6-promise
tsc --init
package.json
tsconfig.json
现在,您可以在 typescript 文件中使用 promise。执行以编译项目。您应该没有错误。var x: Promise<any>;
tsc -p .
使用 和 编译器选项直接编译到,而无需安装 .(使用 TypeScript 测试)。在 lib 部分中,使用 或 。target
lib
es5
es6-shim
2.1.4
es2016
es2015.promise
// tsconfig.json
{
"compilerOptions": {
"target": "es5",
"lib": [
"es2015.promise",
"dom"
]
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules"
]
}
npm install @types/es6-shim --save-dev
在 TypeScript 2.0 之前,使用键入从 DefinitelyTyped 全局安装。es6-shim
npm install typings --global --save-dev
typings install dt~es6-shim --global --save-dev
该选项用于全局安装,然后用于安装填充程序。前缀表示从 DefinitelyTyped 下载填充程序。该选项意味着填充码的类型将在整个项目中可用。typings
npm
typings
typings
dt~
--global
https://github.com/Microsoft/TypeScript/issues/7788 - 找不到名称“Promise”和找不到名称“require”