2016-10-20 29 views
1

用默認值傳遞一個可選的參數,我有以下的構造:在Angular2

constructor(@Optional() private config?: DefaultConfig) { 
     this.config = config || new DefaultConfig(); 
    } 

有什麼辦法避免做this.config = config || new DefaultConfig();?我想要的是在構造函數的參數中添加默認值?類似這樣的:

constructor(@Optional() private config?=new DefaultConfig(): DefaultConfig) {} 

謝謝!

+1

之前沒有更多的?爲什麼你必須與上面的函數體做有問題嗎? – BeetleJuice

+0

我沒有任何問題,但由於該語言允許我使用默認值,爲什麼不使用它? – jordins

回答

2

所以我不熟悉Angular2,然而在純打字稿,以下達到您的目的:

constructor(private config = new DefaultConfig()) {} 

也就是說,如果沒有配置通過,this.config將是一個新的DefaultConfig。它還確保構造函數參數的類型必須是DefaultConfig

+1

不,這不適用於使用可選參數的angular2。 錯誤:無法解析MyClassName的所有參數。 – jordins

1

您是否嘗試過以下方法?

constructor(@Optional() private config: DefaultConfig=new DefaultConfig()) { 
    .. 
} 

注::