为啥 angular-cli 生成 ngOnInit 而无需输入函数结果?
Posted
技术标签:
【中文标题】为啥 angular-cli 生成 ngOnInit 而无需输入函数结果?【英文标题】:Why does angular-cli generate ngOnInit with no typing for the function result?为什么 angular-cli 生成 ngOnInit 而无需输入函数结果? 【发布时间】:2018-02-13 03:01:54 【问题描述】:我有一个由 angular-cli 生成的组件,生成的 .ts 文件代码有:
ngOnInit()
而不是
ngOnInit(): void
我的 tslint 配置为始终希望 typedef 存在,但 cli 生成的代码没有 typedef - 这是我的问题。
有没有办法将 cli 配置为始终设置所需的 typedef,或者我唯一的选择是禁用此 tslint 检查或手动修复它?
【问题讨论】:
这与 Angular 本身无关。这是与 angular-cli 和/或 tslint 相关的问题。顺便说一句,TypeScript 中不使用术语“typedef”。 是的,你是对的 - 我使用 typedef 是因为它是 tslint 规则的名称,用于在某些地方使用类型。 【参考方案1】:Angular CLI 使用蓝图来生成工件,并且在你的 node_modules 中有一个目录 @angular/cli/blueprints。例如,有一个子文件夹 component/files/path,您可以在其中找到组件生成的模板。 Angular CLI 团队承诺在未来允许创建自定义蓝图,但从今天开始,你不能只修改模板。
如果只需要在方法签名中添加 void,可以手动添加或者禁用对应的 tslint 规则。
另一种 hacky 方法是使用库 angular-cli-tools 生成模板(请参阅 https://github.com/littleuniversestudios/angular-cli-tools),但由于您只想添加 void 返回类型,只需手动执行。
【讨论】:
我的问题是我无法配置 cli 应如何生成我的文件以匹配我的 tslint 选项。而且我不知道为什么用打字稿编写的角度没有制作正确的蓝图,因为使用 tslint 的 typedef 规则,您可以强制用户始终在某些地方拥有类型,因此如果蓝图中存在 :void 它总是不管 typedef 规则是开还是关,都是正确的。不过无论如何,谢谢你的回复! 创建一个关于在此处添加 void 的功能请求github.com/angular/angular-cli以上是关于为啥 angular-cli 生成 ngOnInit 而无需输入函数结果?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Angular Oninit 仅在离开页面时才调用服务
有没有办法告诉 angular-cli (for angular 2) 生成缩小版的 css?
通过 angular-cli 生成的 Angular 组件的自定义项目级模板
由angular命令行工具(angular-cli)生成的目录和文件
是否可以使用单个 angular-cli 命令(如 ng generate component comp1、comp2、comp3)生成多个 Angular 组件?