【问题标题】:Angular: Should I use class or interface for model?Angular:我应该为模型使用类还是接口?
【发布时间】:2020-02-13 16:34:46
【问题描述】:

一段时间以来,我一直在 Angular 应用程序中使用数据模型类。但前段时间我看到一些开发人员为此目的使用接口。我决定查看 Angular Style Guide,但没有找到任何相关信息。我搜索了一下,发现样式指南suggests use class instead of interface,但问题中的链接不起作用(准确地说是锚点)。然后我发现this 评论建议使用接口而不是类。

我很困惑,想知道我应该为数据模型使用什么?

附:我知道类和接口之间的区别,尤其是在 TypeScript 中。我只想知道 Angular 提供的最佳实践。也许你可以给我一个 Angular Style Guide 部分的链接,它会澄清一切。

【问题讨论】:

    标签: angular


    【解决方案1】:

    在我看来,在大多数情况下,接口已经足够了。对于该主题的更长时间的讨论,您自己提供的 github 问题链接是一个很好的来源,但总体而言,这是一个偏好问题,没有哪个选项比另一个更正确。

    【讨论】:

      【解决方案2】:

      最佳实践是使用类并在类构造函数公共参数中定义属性,以便您可以发现您的模型。这是一个简单的例子:

      class Book {
        constructor(
          public name = "Default book name",
          public author = "Default author name";
        ) { }
      }
      

      PS:如果您以后需要获取所有属性,您绝对需要定义一个默认值。这是一个我需要了解接口属性的用例:Get class (interface) properties in Angular 5 / TypeScript without assigning a default value

      【讨论】:

      • 同意!您能否提供一些确认此最佳做法的官方链接?
      • 我知道这将是您的首选方法,但究竟是什么使它成为最佳实践?
      • 我还记得它在 Angular 样式指南中的时候,但是现在,他们从中删除了很多东西,所以我不知道它是否仍然是 Angular 的最佳实践。但是,这是我需要那种样式的模型类的情况:stackoverflow.com/questions/49174696/…
      • 我很确定完全相反的部分曾经是官方风格指南的一部分。他们以某种方式将其删除的事实使我认为这是对我的想法的验证,即这是个人喜好问题。
      猜你喜欢
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2018-12-14
      相关资源
      最近更新 更多