如何将 angular 的 $resource 与 TypeScript 和 d.ts 一起使用

How to use angular's $resource with TypeScript and d.ts

使用此 TypeScript(基于一些在线课程):

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 具有所有 angular 的 REST 辅助方法,如 $save/$delete,但我无权访问接口 obj.productName。这段代码有什么问题?

我想我明白了。应该是:

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

对此有何评论?

谢谢!