angular - 通用 http 请求如何在 Angular 中工作?
问题描述
当您有一个 http 客户端操作时,例如 this.http.get,拥有一个泛型类型有什么作用?就像我做了 this.http.get(url); 一样,这是否会确保从 url 请求的所有内容都是该类型的,如果不是,它会抛出错误吗?
有没有区别
getHeroes (): Observable<Hero[]> {
return this.http.get<Hero[]>(this.heroesUrl)
.pipe(
catchError(this.handleError<Hero[]>('getHeroes', []))
);
}
这样做:
getHeroes (): Observable<Hero[]> {
return this.http.get(this.heroesUrl)
.pipe(
catchError(this.handleError<Hero[]>('getHeroes', []))
);
}
我认为这两个示例具有相同的效果是否正确,因为底部示例的方法签名指定了 Observable 的类型?那么底部的例子不是也被泛化了吗?
解决方案
没有任何区别。在这两种情况下都将返回相同的数据。遗传类型确保应用程序其余部分的类型安全。
通过设置泛型,您可以为应用程序的其余部分设置期望,如果期望从调用中得到什么以及如何处理它。
推荐阅读
- java - 在哪里使用 Spring Beans 而不是 Classic Java Objects
- python - 如何将数组的某些元素与 Python 中的不同 sclar 相乘
- python - Python 和 R 中的整数除法返回有趣的错误数字
- javascript - Javascipt动画文字一个接一个
- python - 从 Node.js 启动 Python 进程时文件转储失败
- scheme - Racket/Scheme - (define ((function-name arg1) arg2) (body ...)) - 符号
- apache-kafka - Hdfs-Sink 连接器根据文件名创建了数据重复
- flutter - 颤振 | Dart 有没有更优雅的方式来编写这段代码?
- javascript - 如何使用来自 div 输入标签的输入进行计算
- postgresql - Postgres - 函数