2015-10-20 57 views
2

如何將對象定義爲受保護或私有的手稿?手稿 - 作爲私人或受保護的對象

我不能在界面(只允許公開), 這樣做,我也不能在課堂內做到這一點,因爲下面的方法不起作用。

private options : interface{ 
    collapsible : boolean; 
    collapsed : boolean; 
    editable  : boolean; 
} 

任何提示? 謝謝

佐爾坦陶馬希 - 謝謝你的幫助,

在接口

declare module ICoreModule{ 
    // protected or private 
    interface IOptions{ 
     initWhenDataReady : boolean; 
     collapsible   : boolean; 
     collapsed   : boolean; 
     editable   : boolean; 
    } 

    export interface ICoreScope extends ng.IScope{ 
     sandboxSave : Function; 
     data  : Object; 
    } 

    export interface Class extends App.Directive{ 
     $scope : ICoreScope; 
     $element : ng.IRootElementService; 
     $attr : ICoreAttr; 
     $ctrl : ng.IFormController; 
    } 
} 

在類:

protected options : ICoreModule.IOptions = <ICoreModule.IOptions>{ 
    initWhenDataReady : true, 
    collapsible   : true, 
    collapsed   : true, 
    editable   : true 
}; 
+1

如果定義模塊內部的接口,可以導出與否。通過不導出它,您可以在模塊級別上實現類似於私人的行爲。 –

+0

啊,太好了!恰恰是我錯過了。所以私密是可能的,任何提示保護? – Nath

+0

受保護對此方案中的類或接口沒有意義。受保護的只能是類的成員,這意味着只有子類可以訪問它。順便說一句,據我所知,TypeScript 1.5支持類內的受保護成員。 –

回答

1

如果你定義一個類或一個module裏面的intertace,你可以選擇weth呃你想用export這個關鍵字來export它與否。

如果一個類或接口不是exproted,那麼它只在聲明模塊內部可見。

但是,如果非出口類或接口在任何公共成員,法,出口類等被使用,那麼你會得到一個編譯錯誤,你就必須將其導出然後。