我使用 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/