小编典典

何时在 TypeScript / Angular 中使用接口和模型

all

我最近看了一个使用 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 数据并绑定到接口/模型。有时我想要一个数据对象,有时我想保存一个对象数组。

我应该使用哪一个,为什么?


阅读 67

收藏
2022-06-07

共1个答案

小编典典

接口仅在编译时。这仅允许您检查接收到的预期数据是否遵循特定结构。为此,您可以将内容投射到此界面:

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);
      });
    });
2022-06-07