私は既存のタイスクリプトプロジェクトの作業を続けています。元のプロジェクトではgts-typescriptを使って.tsファイルをコンパイルしましたが、Visual Studio Codeに付属のtscコンパイラを使用しています。しかし、私はES6の約束を働かせることはできません。私はES6の定義ファイルをインストールしているES6プロミスにはtypescript 2.0の引数が必要ですか?
は約束:
tsconfig.jsonnode_modules
@types
es6-promise
index.d.ts
package.json
types-metadata.json
readme.md
:
npm install --save @types/es6-promise
これは約束定義ファイルを持っているnode_modulesフォルダ内のディレクトリを作成します
"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;
}
これは元のプロジェクトでは単純なエラーですか、何か不足していますか?もう約束を得るためにここに追加する必要があるのは何ですか?
おそらくユーズは 'Promise'を使用しますか? –
さて、はい、それは単純なエラーです。エラーメッセージのように、 'Promise'型は型引数を必要とします。 'startPromise'はどのようなタイプで解決されますか? – Bergi
ありがとう、私はこれがどのように働いたのか、あるいはエラーがおそらく私が定義ファイルをどのように含んでいたかには分かりませんでした。私は、約束が返されるはずのタイプを見つけて、Promiseの間にそれを追加しました。今、エラーはなくなりました:) –
Kokodoko