typescript - 在多次出现时使用相同的类型
问题描述
使用 TypeScript 和 Angular,我创建了以下对 HTTP observable 的订阅:
this.movie.getByKeywordIDChrono().subscribe((data: {
page: number,
results: object[],
total_pages: number,
total_results: number
}) => {
if (data.total_pages > 1) {
for (let i = 2; i <= data.total_pages; i++) {
this.movie.getByKeywordIDChronoNextPage(i).subscribe((data: {
page: number,
results: object[],
total_pages: number,
total_results: number
}) => {
...
})
}
}
})
两个订阅都具有相同的data
对象类型。
如何在两个实例中使用为 data 参数创建的类型?
解决方案
使用接口或类型别名:
type MyData = { // type alias
page: number,
results: object[],
total_pages: number,
total_results: number
}
this.movie.getByKeywordIDChrono().subscribe((data: MyData) => {
if (data.total_pages > 1) {
for (let i = 2; i <= data.total_pages; i++) {
this.movie.getByKeywordIDChronoNextPage(i).subscribe((data: MyData) => {
...
})
}
}
})
或者类似的接口:
interface MyData {
page: number,
results: object[],
total_pages: number,
total_results: number
}
推荐阅读
- javascript - TypeError:无法调用 null 的方法“indexOf”
- r - ggplot - 如何制作关于性别的错误栏
- r - 使用高斯/正态分布钟形曲线投掷 100 个骰子的概率分布
- sql - 无法在 SQL 中除以两个单独列表的计数,一直返回 1
- javascript - 使用 cytoscape.js 的元素数组为空
- c# - 此站点无法从 dotnet linux 提供安全连接 asp.net core
- php - 每 X 分钟调用和运行 Ajax
- python - Heroku 应用程序成功部署,但在加载站点时收到应用程序错误
- node.js - Spotify API 授权授予流程状态 415
- c++ - 计算 3 位数字的位数的阶乘总和