Typescript错误:类型类上定义为private的属性在类型接口上定义为public
我刚刚在TypeScript 0.9.5中启动了一个新项目,以下代码引发了一个错误: 类服务声明了IService,但未实现它。在类型服务上定义为私有的属性“getUserInfo”在类型iSeries设备上定义为公共的属性Typescript错误:类型类上定义为private的属性在类型接口上定义为public,typescript,Typescript,我刚刚在TypeScript 0.9.5中启动了一个新项目,以下代码引发了一个错误: 类服务声明了IService,但未实现它。在类型服务上定义为私有的属性“getUserInfo”在类型iSeries设备上定义为公共的属性 module App.Interfaces { export interface IService { getUserInfo(): void; } } module App.Services { export cl
module App.Interfaces {
export interface IService {
getUserInfo(): void;
}
}
module App.Services {
export class Service implements App.Interfaces.IService {
private getUserInfo(): void { }
}
}
只要我使用了TypeScript,我就知道接口不能有访问修饰符!有什么好处
您不能在
服务
类的getUserInfo
函数上使用私有
访问修饰符,因为它在接口iSeries设备
上声明
如果类是iSeries设备
,则需要公开声明接口的所有函数/属性
module App.Services {
export class Service implements App.Interfaces.IService {
/* private <= remove */ getUserInfo(): void { }
}
}
模块应用程序服务{
导出类服务实现App.Interfaces.IService{
/*私人制作是公开的是显而易见的解决方案。很抱歉,我没有澄清我只是不理解为什么会这样。然而,在验证了C#中的相同行为后,我意识到这只是我以前从未遇到过的细节之一,并且觉得很奇怪。