2014-01-25 109 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