2016-07-04 6 views
0

私はTSの初心者です。私は、--target es6で自分のタイプコピーコードをコンパイルすると、Promiseタイプをグローバルに認識していることがわかります。typescriptで型をグローバルに定義する方法はありますか? ES6 Promiseの代わりにbluebirdを使うことに興味があります

代わりにブルーバードを使用し、ブルーベードで表されるグローバルPromiseタイプを使用します。これをどのように達成するのですか?

具体的には、どこでもブルーバードのインポートを避けたいのですが、Promise<T>が挙げられます。

+0

おそらく、ブルーバードの入力ファイルを含めるだけで十分ですか? "bluebird.d.ts" – Kokodoko

+0

私はそれを持っていましたが、タイプミスで '--global'フラグが何をするのか分かりませんでした。今度は – Madd0g

答えて

2

にtypescriptですによってTypings

使用を含め約束します
npm install typings 
typings install dt~bluebird --global --save 

tsconfig.jsonと入力用フォルダが同じディレクトリにあることを確認してください。

+0

私はこれを 'typings/index.d.ts' - ' /// ' – Madd0g

+0

に入れましたが、実際にどこにでもインポートしようとはしていませんなぜなら私はそれをすべてインポートしたくないからです。オハイオ州。 – Madd0g

+1

ああ。私はグローバルではなくモジュールでそれを持っていました。グローバルに移動し、グローバルな「約束」を何とか定義しました。これは黒い魔法です。 – Madd0g

1

ターゲットes5にコンパイルします。以下のようなもので、あなたのTSconfigにカスタムglobal.d.tsを含める:

declare var Promise: PromiseConstructor; 

interface PromiseConstructor { 
    new <T>(...) 
} 

あなたはES6の定義を確認することができますが、自動的にlib.es6.d.ts

+0

この' global.d.ts'は魔法のようですグローバルタイプを作成していますが、ここに何らかの形で既存のブルーバード定義をプラグインする方法はありますか?私はブルーバード型定義が既にプロジェクトに含まれていますが、どうすればそれを差し込むことができますか?私は非常に似たディスカッション[ここ](https://github.com/DefinitelyTyped/DefinitelyTyped/issues/4112)を読んでいるが、それは非常にわかりやすく、実際にそれを達成する方法を理解していない。 – Madd0g

関連する問題