2016-10-27 18 views
1

は私が変数を持っているとしましょう:複数のインターフェイスを1つの変数に使用できますか?

var product:Product; 

VAR製品は、製品のインターフェースを使用していますが、私は、製品が非表示にする必要がある場合、私の見解では知っている一般的なプロパティ「非表示」を追加します。私はProductインターフェースに「hide」を追加することができますが、Productモデルのプロパティではないので、正しく感じません。

私は両方の性質を持っている製品を拡張する特別なインタフェースを作ることができるが、これを行うにはより多くのsimpelな方法があります場合、私は思ったんだけど、何か:

var product:Product & Hide; 

は、このような構文がありますか?

答えて

2

はい、それはまさにそうです、それはIntersection Types.

と呼ばれていますので、次のいずれか

interface Hidden { 
    hide: boolean; 
} 

let product: Product & Hidden; 

それとも

let product: Product & { hide: boolean } 
+0

ありがとう!私のIDEはエラーを表示しますが、tslintはそうではありませんので、私はIDEをアップデート/スイッチする必要があると思います – driedoezoe

+0

どのIDEですか?エラーは何ですか? IDEが使用するタイスクリプトのバージョンは何ですか? –

+0

私はphpstormを使用していますが、正直言って私はどのタイプコピーを使用しているのか分かりません。エラー:それは文を期待しているので、私の推測では交差の種類についてはわかりません。現時点では、私はすでに元の答えで満足していますが、IDEエラーの解決策がある場合は教えてください;) – driedoezoe

関連する問題