2016-05-29 18 views
0
からのすべてのオプションフィールド

私はオブジェクトのプロパティを含むオブジェクトをパラメータとして取るコンストラクタを持っています。インターフェイスの作成クラス

class MyObj { 
    a = 0; 
    b = 0; 
    c = 0; 
    d = 0; 
    constructor(params){ 
     for(var i in params) 
      this[i] = params[i]; 
    } 
} 

私の目標は、new MyObj({a:1})のようなものを書くときにオートコンプリートを行うことです。 は今、私はconstructor(params:MyObjOptions){...}

で自動補完

interface MyObjOptions { 
    a?:number; 
    b?:number; 
    c?:number; 
    d?:number; 
} 

を持つように分離したインターフェイスを作成する必要があるインターフェイスのすべてのフィールドを複製することなく、それをする方法はありますか?

答えて

1

インターフェイス内のすべてのフィールドを複製しなくてもそれを行う方法はありますか?

あなたはconfigプロパティにオブジェクトを置くことができます。

interface MyObjOptions { 
    a?:number; 
    b?:number; 
    c?:number; 
    d?:number; 
} 

class MyObj { 
    constructor(public options:MyObjOptions) { 
    } 
} 

をしかし、あなたは、あなたがインターフェイスでそれらをリストする必要がありデフォルトは+それらを書きたい場合ので、あなたは、例えば記述しなければなりませんa 2回。それを避けてください

関連する問題