Jyo*_*may 7 javascript angular
我使用Promise和observables逻辑使用"get"从服务器获取数据.它一直工作到昨天.然后它开始抛出上述错误.请帮我找错.我得到"通用类型'承诺'需要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);
Run Code Online (Sandbox Code Playgroud)
当给出"promise:"时,仍然会出现类似"错误TS2339:属性'订阅'在'Promise'类型上不存在"的问题.
我尝试了不同的解决方案,但没有运气.
Tab*_*res 16
您需要添加特定类型.
如果它不包含任何数据且仅用于解析/拒绝功能,请使用:
Promise<void>
Run Code Online (Sandbox Code Playgroud)
最终这是一个类似于任何其他类型的签名,因此您可以使用:
Promise<any>
Run Code Online (Sandbox Code Playgroud)
https://basarat.gitbooks.io/typescript/content/docs/promise.html
| 归档时间: |
|
| 查看次数: |
9372 次 |
| 最近记录: |