2014-01-25 78 views
4

我只是在打字稿0.9.5开始一个新的项目上类型接口的公共和下面的代码是抛出一个错误:打字稿错误:定义为私人型类属性定义为

服务等级申报IService但没有实现它。住宅“getUserInfo”定义为私人型服务被定义为公众型IService

module App.Interfaces { 

    export interface IService { 
     getUserInfo(): void; 

    } 
} 

module App.Services { 

    export class Service implements App.Interfaces.IService { 

     private getUserInfo(): void { } 

    } 
} 

因为只要我用的打字稿我知道,接口不能有访问修饰符!是什么赋予了?

Typescript playground example

回答

6

,因为它的接口IService上声明不能有对ServicegetUserInfo功能private访问修饰符。

如果该类是IService,它需要有所有的所有接口的函数/属性公开声明。

module App.Services { 

    export class Service implements App.Interfaces.IService { 

     /* private <= remove */ getUserInfo(): void { } 

    } 
} 
+0

制作公开是明显的解决方案。对不起,我没有澄清,我只是不明白为什么它是这样的。但是,在C#中验证了相同的行为之后,我意识到这只是其中一个我从未遇到过的细节,而且发现它很奇怪。 – parliament