首页 > 解决方案 > 在声明期间内联初始化变量与使用 TS 在 Angular 中的构造函数中初始化变量

问题描述

我已经使用 Angular 工作了一段时间,但找不到明确的建议:

在构造函数中内联初始化成员变量

我有几次审查我的代码以在构造函数中移动简单类型(布尔值、数字等)的初始化,但仍然想知道这是更好的做法还是品味问题?对我来说,内联初始化会产生更加本地化和简洁的代码,这就是我喜欢它的原因,但我是否正确?

例子:

@Component({
  selector: 'app-elem',
  templateUrl: './app-elem.component.html',
  styleUrls: ['./app-elem.component.scss'],
})
export class AppElemComponent {

  public isHidden = true;    // <-- initialization inline
  public isVisible: boolean;

  constructor() {
    this.isVisible = true;  // <-- vs initialization in the constructor
  }
}

标签: angulartypescript

解决方案


这是个人风格偏好。

在构造函数中初始化属性允许您在初始化属性时利用构造函数参数。

内联初始化属性更简洁,并在其声明的上下文中保持属性的默认值。

TypeScript 编译器只是在构造函数 https://www.typescriptlang.org/play/中带来内联初始化的值


推荐阅读