3
我正在继续研究现有的打字稿项目。原始项目使用gulp-typescript编译.ts文件,但我使用的是Visual Studio Code附带的tsc编译器。但我不能让ES6承诺工作。ES6承诺需要打字稿2.0中的参数?
我已经安装了ES6定义文件承诺:
npm install --save @types/es6-promise
这将创建一个有承诺的定义文件node_modules文件夹的目录:
node_modules
@types
es6-promise
index.d.ts
package.json
types-metadata.json
readme.md
tsconfig.json
"files": [
"src/main.ts",
"src/game.ts",
"node_modules/@types/es6-promise/index.d.ts"
]
参考
///<reference path="../node_modules/@types/es6-promise/index.d.ts" />
我假设包括承诺定义文件现在的工作,但我得到编译项目时出现以下错误:
error TS2314: Generic type 'Promise<T>' requires 1 type argument(s).
当我看到在原来的代码中,我找到这个:
private componentsPromise: Promise<Component[]>;
private startPromise: Promise; // <- error
public getComponents(): Promise<Component[]> {
return this.componentsPromise;
}
public isStarted(): Promise { // <-- error
return this.startPromise;
}
这是原始项目中的一个简单的错误还是我错过了什么?我需要在这里添加什么才能兑现承诺?
也许juse使用'Promise'? –
嗯,是的,这是一个简单的错误。就像错误消息所说的那样,'Promise'类型需要一个类型参数。 'startPromise'解决什么类型? – Bergi
谢谢,我不知道这是如何工作,或者如果错误可能与我如何包含定义文件。我发现承诺应该返回的类型,并在Promise之间添加了,现在错误消失了:) –
Kokodoko