繁体   English   中英

为什么没有 Angular-CLI 为 Angular 项目中的“模型”生成命令?

[英]Why no Angular-CLI generate command for 'model' in Angular Project?

在学习 Angular 时,我只是通过各种 Angular-CLI 命令来生成 Angular 的各个部分,如“组件”、“服务”、“接口”、“管道”等。

通过 Angular-CLI 生成 Angular 项

ng g c components/comp-1 //generates component
ng g s services/service-1 // generates service
ng g i interfaces/interface-1 // generates interface

但是,令我惊讶的是,为什么没有针对“ Model ”的生成命令(尽管接口也几乎完成了一些工作——但 model 更强大,因为它也可以在类中包含方法)。

我是不是错过了什么,或者 Team-Angular 错过了生成“自动生成模型”的命令——因为它们是 OOPS 框架的核心。

在此处输入图像描述

参考:

https://www.npmjs.com/package/angular-cli

因为模型一个类,所以要生成它,请使用--type选项,如下所示:

ng generate class hero --type=model

将导致:

hero.model.ts

您不能直接生成模型。 实际上模型是一个类。 ng generate 默认只允许生成以下类型。

  1. 应用程序外壳
  2. 应用
  3. 班级
  4. 成分
  5. 指示
  6. 枚举
  7. 警卫
  8. 界面
  9. 图书馆
  10. 模块
  11. 管道
  12. 服务
  13. 服务工作者
  14. 普遍的
  15. 网络工作者

因此,在您的情况下,您可以使用 --type 选项来定义生成类。 假设你想要一个像 bar.foo.ts 这样的类

您只需要使用以下选项定义它。

ng generate class bar --type=foo

在您的情况下,您可以使用此命令定义一个模块

ng generate class nameOfYourModule --type=model

它将生成 nameOfYourModule.model.ts

有关更多信息,请参阅 ng generate options 的官方文档

ng g class subfolder/yourclass --type=model --skip-tests 

将在app\subfolder中创建一个 class yourclass 如果您删除--skip-tests ,您将获得一个额外的文件yourclass.model.spec.ts

此命令还生成模型

ng generate class employee --type

导致:

employee.ts employee.spec.ts employee.ts employee.spec.ts

我只使用ng generate class (没有任何标志),我相信很多其他人也这样做。 我认为我在 Angular 中使用纯类文件的唯一时间是使用模型。 由于它们主要位于模型文件夹中,因此几乎没有理由使用--type=model添加额外的 'model' 后缀。 我相信这是 Angular 团队没有包含 'ng generate model' 命令的部分原因(因为它是类的重复)。

只需在项目的根目录中运行:

ng generate interface your_model_name --type=model
# or in models folder
ng generate interface models/your_model_name --type=model

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM