在Angular中,将构造函数置于类变量之上是否正确?

问题描述 投票:1回答:4

IE:而不是这个:

export class MyComponent implements OnInit {
  users: User[];
  error_message: string;
  constructor(public authService: AuthService, public router: Router) { }

这(看起来更干净,更适合我)

export class MyComponent implements OnInit {
  constructor(public authService: AuthService, public router: Router) { }
  users: User[];
  error_message: string;

我在Angular样式指南中找不到任何关于此的文档:https://angular.io/guide/lifecycle-hooks

angular class syntax constructor
4个回答
1
投票

好吗?当然没关系。这是否合适 - 这是值得商榷的。这当然不是传统的。

当您开始需要在构造函数中使用成员变量时会发生什么?

在这种情况下:如果你继续在你的构造函数下面声明你的变量,肯定它会起作用,但它对于可读性肯定是不愉快的。或者,在这种情况下,您可以在构造函数上方声明这些成员变量,但之后您的文件会出现不一致。 (即一些文件的成员变量在构造函数之前定义,一些文件在之后定义。)

我建议坚持在构造函数之前的类开头定义所有成员变量的约定,但是嘿,这只是我的两分钱! :)


1
投票

这种声明没有限制。

而不是Angular风格指南,我会建议你检查qazxsw poi

但也没有这样的限制


1
投票

从某种意义上来说,代码可以编译并完成它的工作。对于打字稿linter TSlint rules(一个检查你的代码的样式的程序),默认配置是在构造函数之上有变量。但是,有些团队制定了自己的规则。我建议选择一个订单并坚持下去,这样可以更轻松地浏览长文件。


1
投票

引用官方tslint

将属性放在顶部,然后放置方法。

构造函数是一种方法,因此应该放在类的属性之后。

© www.soinside.com 2019 - 2024. All rights reserved.