在尝试实现angular的IHttpService时,我不确定如何处理以下函数。
interface IHttpService {
<T>(config: IRequestConfig): IHttpPromise<T>;
}
class MyHttpService implements IHttpService
{
// The following does not work
<T>(config: IRequestConfig): IHttpPromise<T>
{
}
}
这甚至可能吗?
答案 0 :(得分:2)
使用 TypeScript 类无法做到这一点。您需要回到使用简单的功能。
并非每个可以在TypeScript中定义的接口都可以使用TypeScript类实现。这是其中一个案例。
答案 1 :(得分:0)
basarat是正确的,你应该使用常规函数来实现IHttpService
接口。
为了将来参考,下面是实现该接口并在Angular中使用它的方法之一:
interface IRequestConfig {}
interface IHttpPromise<T> {
then: (resolve?: (value: T) => any, reject?) => IHttpPromise<T>;
}
interface IHttpService {
<T>(config: IRequestConfig): IHttpPromise<T>;
}
function MyHttpService<T>(config: IRequestConfig): IHttpPromise<T>{
// Define service behaviour here.
}
angular.module('MyModule')
.service('MyHttpService', MyHttpService)
.controller('MyController', function(MyHttpService: IHttpService){
MyHttpService<MyType>({
// Implement `IRequestConfig` here.
}).then(function(value){
// Accces properties on `value`.
});
});