2017-09-24 5 views
0

JSONオブジェクト用のインターフェイスを作成したいと思います。それはnの不明な名前のキーを持ち、各値は特定の署名を持つ関数の配列です。特定の関数の配列を含むJSONオブジェクト用のインターフェイスの作成方法

// CLASSES 
class Server { 

    // Private variables 
    mapping : IMapping = {} 

    // Public functions 
    public use(endPoint = "", handler : IHandler) : void { 

     // Check if the end point exists in the mapping 
     if(this.mapping[endPoint] === undefined) { 

      this.mapping[endPoint] = { 
       [endPoint] : [handler] 
      }; 

     } else { 

     } 
    } 

} 

// INTERFACES 
interface IMapping 
{ 
    [key : string] : IHandler[]; 
} 

interface IHandler { 
    (req : object, res : object, next : object) : void; 
} 

私のコードは、上の失敗:

Type '{ [x: string]: IHandler[]; }' is not assignable to type 'IHandler[]'. 
Property 'length' is missing in type '{ [x: string]: IHandler[]; }'. 

答えて

0

this.mapping[endPoint]だけであるべき:応答のための

this.mapping[endPoint] = [handler]; 
+0

ありがとう!この場合、次のように修正します: //マッピングにエンドポイントが存在するかどうかを確認します。そうでない場合は、 を作成します(this.mapping [endPoint] ===未定義){ this.mapping [endPoint] = []; } //エンドポイントをハンドラに関連付けます。 this.mapping [endPoint] .push(ハンドラ); – Giovarco

関連する問題