Typescript错误:在类型Class上定义为private的属性在Interface类型上定义为public

时间:2014-01-25 21:43:40

标签: typescript

我刚刚在TypeScript 0.9.5中启动了一个新项目,以下代码引发了错误:

类服务声明了IService,但没有实现它。属性为“私有”的属性“getUserInfo”在IService上定义为public

 module App.Interfaces {

     export interface IService {
        getUserInfo(): void;

    }   
}

module App.Services {

    export class Service implements App.Interfaces.IService {

        private getUserInfo(): void { }

    }   
}

只要我使用TypeScript,我知道接口不能有访问修饰符!是什么给了什么?

Typescript playground example

1 个答案:

答案 0 :(得分:7)

您在private类的getUserInfo函数上不能拥有Service访问修饰符,因为它在接口IService上声明。

如果该类是IService,则需要公开声明的接口的函数/属性全部

module App.Services {

    export class Service implements App.Interfaces.IService {

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

    }   
}