我正在尝试使用ionic 2和angular 2构建应用程序
我在尝试运行我的应用程序时收到此错误。
我建立另一个项目来检查和同样的问题,
我真的很困惑这个问题。

angular - 错误TS4053:从导出的类返回的公共(public)方法的类型具有或正在使用名称 ‘Observable’-LMLPHP

这是我的服务代码

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import { Storage} from '@ionic/storage';
import {NavController} from "ionic-angular";


/*
  Generated class for the MyService provider.

  See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  for more info on providers and Angular 2 DI.
*/
@Injectable()
export class MyService {
  public local :Storage;
  public getsession : any;
  constructor(private http: Http, private navCtrl : NavController) {
    this.local = new Storage();
    console.log("my-service page")
  }

  postLogin(data){
    let link = "http://adirzoari.16mb.com/login.php";
    return this.http.post(link,data)
        .map(res => res.json())
  }

  checkToken(){
    return this.getsession =this.local.get('token');
  }

}

最佳答案

我仅将此作为答案,这样可以帮助其他面临相同问题的SO用户。

就像提到的@sudheer-kb一样,为了解决该问题,您需要显式导入Observable类:

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
// ...
import { Observable } from "rxjs/Observable"; // <- add this import

然后给您的方法一个显式的返回类型(也感谢@ruffin的评论):
postLogin(data): Observable<any> {
    // ...
}

关于angular - 错误TS4053:从导出的类返回的公共(public)方法的类型具有或正在使用名称 ‘Observable’,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39870881/

10-16 15:56