Typescript - 作为私有或受保护的对象
Posted
技术标签:
【中文标题】Typescript - 作为私有或受保护的对象【英文标题】:Typescript - object as a private or protected 【发布时间】: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 支持类中的受保护成员。 我将它完全用于继承。现在解决了。在模块声明中,未导出的东西是私有的或受保护的,它允许在类中使用受保护的或私有的-所以现在可以正常工作-谢谢:) 【参考方案1】:如果您在module
中定义一个类或接口,您可以使用export
关键字来选择是否要export
。
如果一个类或接口没有被导出,那么它只在声明模块中可见。
但是,如果在导出类的任何公共成员、方法等中使用了非导出类或接口,则会出现编译错误,然后必须将其导出。
【讨论】:
以上是关于Typescript - 作为私有或受保护的对象的主要内容,如果未能解决你的问题,请参考以下文章