2015-12-08 79 views
2

有了這個打字稿(基於一些在線課程):

interface IProduct { 
    productName: string 
} 

interface IProductResource extends ng.resource.IResource<IProduct> { 
} 

interface IDataAccessService { 
    getProductService(): ng.resource.IResourceClass<IProductResource> 
} 

class DataAccessService implements IDataAccessService { 
    static $inject = ['$resource']; 

    constructor(private $resource:ng.resource.IResourceService) { 
    } 

    getProductService():ng.resource.IResourceClass<IProductResource> { 
     return this.$resource("sampleUrl"); 
    } 

} 

angular.module('app').service('dataAccessService', DataAccessService); 

我有一個使用dataAccessService代碼:

var obj : IProductResource = dataAccessService.getProductService().get(); 

obj有所有角度的REST幫助程序方法(如$ save/$ delete),但我無法訪問接口obj.productName。這段代碼有什麼問題?

+0

如何定義API操作及其定義? Surly我需要在它內部定義它。$ resource(「sampleUrl」); ,但也應該有ts定義,該怎麼做? – deadManN

回答

2

我想我明白了。它應該是:

interface IProductResource 
    extends ng.resource.IResource<IProduct>, IProduct { 
} 

對此有何評論?

謝謝!

+0

這就是我所做的 – Nico