2016-08-25 5 views
0

iは、オブジェクトインタフェースを有する:克服複数の拡張制限

interface Obj { 
    a:string; 
    b:string; 
} 

iが正常に私が受け取るすべてのOBJに延びなければならないインターフェースを有するサービスからデータを受信します。

interface ServiceResponse { 
    c:string; 
    d:string; 
} 

どのように私はObjにそのオブジェクトをダウンキャストすることができるように、両方のインターフェイスを拡張するインターフェイスを持つことができますか?そのようなケースを処理するための優れた設計構造もありますか?

+0

あなたがしようとしていることは明確ではありません。 – Amy

+0

'インタフェースBがObj、ServiceResponse {}'を拡張しないのはなぜですか? –

答えて

1

私は単にそのような場合のために働く

interface Both extends Obj, ServiceResponse { 

} 
をしているように感じます。私は何か見落としてますか ?この

interface Obj { 
    a:string; 
    b:string; 
} 


interface ServiceResponse { 
    c:string; 
    d:string; 
} 

interface Both extends Obj, ServiceResponse { 

} 

class SomeData implements Both { 
    a:string; 
    b:string; 
    c:string; 
    d:string; 
} 

var test: Obj = new SomeData(); // Works fine 

Hereの活字体の遊び場、その後、結果をダウンキャスト:

は、だから、最終的なコードは、これに似ている意味します。

+0

は疲れて、判断の誤りを犯しました。私はあなたが1つのタイプを1つのタイプにしか伸ばすことができないと思った(それはばかげているでしょう)。 – Alex

関連する問題