我在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
}
}
这是个人风格偏好。
通过在构造函数中初始化属性,可以在初始化属性时利用构造函数参数。
内联初始化属性更简洁,并使属性的默认值与其声明更符合上下文。
TypeScript编译器只在构造函数内部内联初始化值https://www.typescriptlang.org/play/
基本上没有区别,只是方便。使用constructor
初始化的唯一区别是可以动态传递值,然后分配给它
constructor(visible) {
this.isVisible = visible; // <-- vs initialization in the constructor
}