2016-12-01 19 views
2

例:インターフェイス宣言で、かっこは何を意味しますか?

interface IResourceService { 
    (url: string, paramDefaults?: any, 
     actions?: any, options?: IResourceOptions): IResourceClass<IResource<any>>; 
} 

構文(variable: type): Type;は何を意味するのでしょうか?このインターフェイスを実装するにはどうしたらいいですか?

+0

https://www.typescriptlang.org/docs/handbook/interfaces.html#function-types – Paleo

答えて

2

関数を宣言します。

これは、paramsと戻り値の型を指定して直接呼び出すことができるインターフェイスです。 TSインターフェイスは具体的ではないことを覚えておいてください。インスタンス化できません。直接参照することはできません(たとえば、foo instanceof interfaceFooは無効です)。出力コードには表示されません。

TSインターフェイスは、オブジェクトの予想される形状を定義する単純なコントラクトです。その形状は非常に簡単に "fooパラメータで呼び出し可能で、barを返す"ことができます。

これはbriefly covered in the docsです:

インタフェースを持つ関数の型を記述するために、我々は、インタフェースにコールサインを与えます。これは、パラメータリストと戻り値の型だけを指定した関数宣言に似ています。パラメータリストの各パラメータには、名前とタイプの両方が必要です。

1

はちょうどあなたがまた同じことを行うためにa type aliasを使用できることを追加したい:(私の意見では)

type IResourceService = 
    (url: string, paramDefaults?: any, 
     actions?: any, options?: IResourceOptions) => IResourceClass<IResource<any>>; 

そして、それは、より読みやすいです。

関連する問題