angular - 如何设计响应的打字稿模型?
问题描述
如何在我得到以下响应的打字稿中设计我的模型?
{
"data":[
{
"name": "XYZ",
"id": "1"
},
{
"name" :"Abc",
"id": "2"
}
]
}
我尝试了什么:
export class responseModel<T>{
data:T;
}
export class model{
name:string;
id: number;
}
你的建议是什么?所有数据都将作为{ data: THE_DATA_OBJECT }
{
data: []
}
getInfo(): Observable<responseModel<model[]>> {
// API HTTP Call
}
解决方案
类不适合声明表示 HTTP 响应的类型。请改用接口或类型,因为 HTTP 请求产生的反序列化 JSON 值永远不会是类的实例
@Angular StyleGuide
考虑使用数据模型的接口。
export interface Model{
id: number;
name: string;
}
export interface ResponseModel{
data:Array<Model>;
}
getInfo(): Observable<responseModel>{
return this._httpClient.get<resposneModel>('url);
}
推荐阅读
- c - while(gets_s != NULL) 在 C 编程中没有通过 enter 终止
- .net - 部署应用程序时的最佳实践
- mysql - [Perl] 读取带分隔符的文本文件并插入到 perl 5.10 中的 mysql 表中
- while-loop - 请解释一下这个while循环的区别
- c - 定义数组中键的所有排列
- r - 在 R Markdown 块(HTML)中使用循环连续显示 PNG 图像
- r - 带有徽标和标题的闪亮应用程序,当标题太长时,它会转到与窗口内容重叠的下一行
- kotlin - Kotlin 匿名对象的当前函数名称在 Kotlin 1.3.x 中不再有效
- ruby-on-rails - LoadError: cannot load such file -- rails_helper (Rails 6 and Rspec)
- python - for循环中的计数器和重置计数器