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