我最近观看了有关 Angular 2 with TypeScript 的教程,但不确定何时使用接口以及何时使用数据结构模型。
接口示例:
export interface IProduct {
ProductNumber: number;
ProductName: string;
ProductDescription: string;
}
型号示例:
export class Product {
constructor(
public ProductNumber: number,
public ProductName: string,
public ProductDescription: string
){}
}
我想从 URL 加载 JSON 数据并绑定到接口/模型。有时我想要一个单一的数据对象,有时我想要保存对象的数组。
我应该使用哪一个?为什么?
接口仅在编译时存在。这仅允许您检查收到的预期数据是否遵循特定结构。为此,您可以将内容投射到此界面:
this.http.get('...')
.map(res => <Product[]>res.json());
看看这些问题:
- 如何将 JSON 对象转换为 Typescript 类 https://stackoverflow.com/questions/22875636/how-do-i-cast-a-json-object-to-a-typescript-class
- 如何从打字稿中的json响应获取日期对象 https://stackoverflow.com/questions/35917808/how-to-get-date-object-from-json-response-in-typescript/35923990
您可以对类执行类似的操作,但与类的主要区别在于它们存在于运行时(构造函数),并且您可以通过处理在其中定义方法。但是,在这种情况下,您需要实例化对象才能使用它们:
this.http.get('...')
.map(res => {
var data = res.json();
return data.map(d => {
return new Product(d.productNumber,
d.productName, d.productDescription);
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)