javascript - 错误 TS2314 : Generic type 'Promise<T>' requires 1 type argument(s)

标签 javascript angular

我使用 Promise 和 observables 逻辑通过“get”从服务器获取数据。 它一直工作到昨天。突然它开始抛出上述错误。 请帮我找出错误。 我收到“通用类型‘Promise’需要 1 个类型参数”错误。

@Injectable()
export class myBlogService{

  // Property to hold root server URL i.e host
  private serverUrl:string = "app/data.json"

  constructor(private http:Http) {}

  // check function in service to check control is coming to service
  check(){
    alert("getting clicked from service");
  }

  // get function to get data from server
  // basically blog datas
  get(): Promise {
    return this.http.get(this.serverUrl)
               .map(response => response.json())
  }
}


/**
 * 
 * My Components
 * 
 */
@Component({
  selector: 'my-app',
  providers: [myBlogService],
  styleUrls: ['app/css/app.css'],
  template: `
    <h1 (click)= check()>My First Angular 2 App</h1>
    <button (click)=get()>Get My Name</button>
    <h1>{{getResponse.name}}</h1>
  `
})
export class myBlogApp {

  // Property to hold blog data
  public getResponse = {"name": "", "age": ""};

  constructor(protected myblogservice:myBlogService){}

  // check function to check control is going to service
  check() {
    this.myblogservice.check();
  }

  // get function calls service get function which return data from server
  get(){
    this.myblogservice.get().subscribe(data => {
      this.getResponse = data;
    });
  }
}


/**
 * 
 * NgModule Declaration
 * 
 */
@NgModule({
  imports:      [ BrowserModule, HttpModule ],
  declarations: [ myBlogApp ],
  providers:    [ ],
  bootstrap:    [ myBlogApp ]
})
export class app{}


/**
 * 
 * App engine entry point
 * 
 */
const platform = platformBrowserDynamic();
platform.bootstrapModule(app);

当给出“promise:”时,它仍然会发出像这样的问题 “错误 TS2339:属性‘subscribe’在类型‘Promise’上不存在”。

我尝试了不同的解决方案,但还没有成功。

最佳答案

您需要添加特定类型。

如果它不包含任何数据并且纯粹用于解析/拒绝功能,请使用:

Promise<void>

最终,这是一个与任何其他类型签名一样的类型签名,因此您可以使用:

Promise<any> 

https://basarat.gitbooks.io/typescript/content/docs/promise.html

关于javascript - 错误 TS2314 : Generic type 'Promise<T>' requires 1 type argument(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781618/

相关文章:

javascript - 末尾带有神秘括号函数的箭头函数令人困惑

javascript - 空注入(inject)器错误 : StaticInjectorError(DynamicTestModule) When Testing in Angular 2

node.js - 使用 index.jsp 而不是 index.html 构建 Angular 生产环境

html - 对模板组件中的 ng-content 使用样式

Node.js 服务器未收到来自 Angular 站点的上传请求(使用express-fileupload)

angular - 在 Angular ngFor 中应该调用 trackBy 多少次

c# - 使用 RegisterStartupScript、RegisterScriptBlock 等注册的脚本多久执行一次?

javascript - 链接到 WordPress 的外部 javascript

javascript - Mongoose /javascript : Can't update collection in Mongodb

JavaScript 文本框添加