我最近看了一个使用 TypeScript 的 Angular 2 教程,但不确定何时使用接口以及何时将模型用于数据结构。
接口示例:
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());
您可以对类执行类似的操作,但与类的主要区别在于它们存在于运行时(构造函数),并且您可以通过处理在其中定义方法。但是,在这种情况下,您需要实例化对象才能使用它们:
this.http.get('...') .map(res => { var data = res.json(); return data.map(d => { return new Product(d.productNumber, d.productName, d.productDescription); }); });