迁移到TS 2.2.2后,这个错误开始弹出,所以我假设这是问题......代码没有停止工作,但现在我收到了这个错误,我尝试了一些事情,比如返回一个空的observable捕获重新抛出的异常并返回一个对象,似乎没有任何工作.为什么现在发生这种情况?它不应该理解我重新抛出异常而不期待回归吗?我误读了这个错误吗?
这是完整的错误描述:
这是完整的代码:
return request
.map((res: Response) => res.json())
.catch((error: any) => {
// todo: log?
if (error.status == 500) {
this.alertService.showError(error.statusText);
} else if (error.status == 588) {
this.alertService.showAlert(error.statusText);
}
Observable.throw(error.statusText);
});
Run Code Online (Sandbox Code Playgroud)
我尝试返回Observable,但我的包装器方法需要返回类型T,这是我的反序列化请求(map(...))的返回.如果我确实返回,throw这是我得到的错误:
[ts]类型'Observable'不能赋值为'T'
我正在使用:
- Angular4
- 打字稿2.2.2
因为我是Angular的新手,任何人都可以使用angular 2来提供一个简单的解决方案来加载JSON文件数据.
我的代码如下
的index.html
<html>
<head>
<title>Angular 2 QuickStart</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/styles.css">
<!-- 1. Load libraries -->
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<!-- 2. Configure SystemJS -->
<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
app.component.ts
import {Component} from '@angular/core';
@Component({
selector: 'my-app',
template: `
<div id="main">
Main Div
<div id = "header"></div>
<div id …Run Code Online (Sandbox Code Playgroud)