Angularjs 如何在Typescript中实现$http?

Angularjs 如何在Typescript中实现$http?,angularjs,typescript,Angularjs,Typescript,在Typescript中定义$http调用时遇到问题。以前我使用的是.success和.error,如下所示: this.$http({ method: "GET", url: self.ac.dataServer + url }) .success((data: any, status: number, headers: (headerName: string) => string, config:

在Typescript中定义$http调用时遇到问题。以前我使用的是.success和.error,如下所示:

this.$http({
            method: "GET",
            url: self.ac.dataServer + url
        })
            .success((data: any, status: number, headers: (headerName: string) => string, config: ng.IRequestConfig): void => {
                self.topics = angular.copy(data);
                self.topicsBase = angular.copy(data);
                this.$state.transitionTo('home.subjects.subject.admin.topics', {
                    subjectId: this.sus.subject.id
                });
            })
            .error((data, status, headers, config): void => {
                self.topics = null;
                self.topicsBase = null;
            })
            .finally((): void => {
            });
现在我改为使用。然后:

 this.$http({
            method: "GET",
            url: self.ac.dataServer + url
        })
            .then(
            (response): any => {
                self.topics = angular.copy(response.data);
                self.topicsBase = angular.copy(response.data);
                this.$state.transitionTo('home.subjects.subject.admin.topics', {
                    subjectId: this.sus.subject.id
                });},
            (response): any => {
                self.topics = null;
                self.topicsBase = null;
            }
            );
但这给了我以下错误:

严重性代码说明项目文件行 错误TS2322类型“{}”不能分配给类型“ITopic[]”。 类型“{}”中缺少属性“length”。管理员C:\H\admin\admin\app\services\topicservice.ts 214 严重性代码说明项目文件行错误TS2322类型“{}”为 不可分配给类型 “ITopic[]”。管理员C:\H\admin\admin\app\services\topicservice.ts 215

错误出现在我为self.topics和self.topicsBase分配angular.copy(数据)的行上

'类型的参数(数据:IHttpPromiseCallbackArg,状态:any,头:any,配置:any)=>any'
不可分配给
'类型的参数(响应:IHttpPromiseCallbackArg)=>any'

您正在传递一个函数,该函数接受的参数多于
$http()
返回的参数

固定的:
谢谢你的帮助。很抱歉,我在发布问题后意识到了这一点,并在您输入答案时尝试了快速编辑。现在我解决了这个问题,但我有另一个问题。返回的数据过去有一种类型:any,因此它非常适合self.topics和self.topicsBase。你能给我一个建议我现在如何解决这个问题。
你能给我一个建议我现在如何解决这个问题。
指定通用。。。但是如果你不介意的话,不妨在
响应上加一个put注释,你能给我举个例子说明你的意思吗?您是否建议在angular.copy之前添加?还有,我如何在响应上做注释,这是我真正困惑的问题。非常感谢
还有,我怎么能用响应上的注释来实现这一点,这是我真正困惑的
:例如:
。然后((响应:ng.ihttpromisecallbackarg):any=>{},():any=>{})我在使用回调参数时遇到了一些困难,但据我所见,您正确地回答了这个问题。我将提出另一个更具体的问题。谢谢
$http({
    method: "GET",
    url: myURL
})
    .then((response): any => { },(): any => {});