【发布时间】:2016-01-18 18:29:23
【问题描述】:
如何在 Typescript 中将对象定义为受保护的或私有的?
我不能在界面中这样做(只允许公开), 我也不能在课堂上这样做,因为下面不起作用。
private options : interface{
collapsible : boolean;
collapsed : boolean;
editable : boolean;
}
有什么提示吗? 谢谢
Zoltán Tamási - 感谢您的帮助,
在界面中
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
};
【问题讨论】:
-
如果在模块内部定义接口,可以导出也可以不导出。通过不导出它,您可以在模块级别实现类似私有的行为。
-
啊,太好了!正是我所缺少的。所以私有是可能的,有任何关于 protected 的提示吗?
-
Protected 在这种情况下对类或接口没有意义。 protected 只能是类的成员,这意味着只有子类可以访问它。顺便说一下,据我所知,TypeScript 1.5 支持类中的受保护成员。
-
我将它完全用于继承。现在解决了。在模块声明中,未导出的东西是私有的或受保护的,它允许在类中使用受保护的或私有的-所以现在可以正常工作-谢谢:)
标签: javascript interface typescript private protected