2017-01-27 8 views
1

globals.d.tsファイル内に型を宣言して、省略形を呼び出すことができます。Typescript:globals.d.tsの型エイリアスを正しく宣言する方法

declare type Promise<string> = protractor.promise.Promise<string>; 

以下は、私のタイスクリプトプロジェクトで問題なく使用されていました。しかし、最近、この行では次のようなエラーが発生していますエラー:タイプパラメータ名は '文字列'にはできません。これは、TSアップグレードによって発生した可能性があります。宣言された型をPromiseなどの型を持たない型に変更すると、この問題は解決されますが、なぜこのエラーが発生するのか理解したいと思います。

洞察力があれば幸いです。

+0

あなたは、ジェネリック型のエイリアスを作成しようとしていますか?それはあなたが持っているものです。 –

+0

@AluanHaddadはい、私はTypescript 2.0.6を使用しています – fuzzii

+0

このコンテキストでは 'string'をシャドーするのはなぜ違法なのかよく分かりませんが、型引数として別の名前を使用するとエラーが解消され、読みやすくなります。しかし、 'Promise'のようなグローバルと衝突するエイリアスを作るのは悪い考えです。 –

答えて

1

上記の宣言は間違っています。これはglobals.d.tsがインポートされた後

Promise<string> 

は、アプリケーション全体で使用することができるようになる

declare type Promise<T> = protractor.promise.Promise<T>; 

:正しくタイプの別名を宣言します。

ジェネリック情報を見つけることができます:https://www.typescriptlang.org/docs/handbook/generics.html

関連する問題