错误TS4053:导出类的公共方法的返回类型具有或正在使用名称'Observable'

时间:2016-10-05 09:55:55

标签: angular typescript ionic-framework ionic2 ionic3

我试图使用离子2& amp;角2, 我尝试运行我的应用程序时收到此错误。 我建立另一个项目来检查和相同的问题, 我真的很困惑这个问题。

error in photo

这是我的服务代码

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');
  }

}

2 个答案:

答案 0 :(得分:54)

我只是将其作为答案添加,以便它可以帮助其他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> {
    // ...
}

答案 1 :(得分:14)

我有类似的问题,似乎与返回类型的方法有关。对我有用的是简单地添加&#34;:任何&#34;在声明我的方法后,例如:

... | xargs -I {} sh -c 'sample=$(echo {} | tr "/" "\t" | cut -f9); echo $sample; '

我认为这不是一个好习惯,但有时它可能是一个很好的解决方法。