プロミスとオブザーバブルロジックを使用して、 "get"を使用してサーバからデータを取得しました。 それは昨日まで働いていた。それだけで、上記のエラーがスローされます。 どうすればわかりましたか。 "一般的なタイプ 'プロミスには1つのタイプの引数が必要です"というエラーが発生しています。エラーTS2314:汎用タイプ 'Promise <T>'には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);
「約束は:」ときに与えられている、まだそれは のような問題を与える「エラーTS2339:プロパティ型 『約束』上には存在しません 『購読』は、」。
私は別の解決策を試みましたが、まだ運がありませんでした。あなたが特定のタイプを追加する必要が
get(): Observable<any> {
return this.http.get(this.serverUrl)
.map(response => response.json())
}
myBlogServiceでget関数をタイプしないとどうなりますか? – user3791775