2015-12-08 2 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 и их определение? Ужасно мне нужно определить его внутри этого. $ resource ("sampleUrl"); , но также должны быть определения ts, как это сделать? – deadManN

ответ

2

Думаю, что я понял. Это должно быть:

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

Есть ли комментарии по этому вопросу?

Спасибо!

+0

Вот что я сделал – Nico