2015-12-08 52 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