Typescript类:显式';公共';最佳实践是什么?
在TS中,类成员的默认访问级别为Typescript类:显式';公共';最佳实践是什么?,typescript,Typescript,在TS中,类成员的默认访问级别为public,除非另有规定。即便如此,使用public修饰符是否被视为最佳实践?如果没有其他方法使代码更明显 我个人喜欢每次都列出它。当然,这只是个人喜好的问题。如果您确实想这样做,并且您使用了tslint,那么每次都有一个强制显式可见性的选项 member-access: true 在我看来,这是一个非常主观的话题,不存在完美的答案。然而,我想说,确定答案的一个重要因素是您是否同时使用其他语言,以及TypeScript和其他语言之间的默认访问器修饰符是否有差异
public
,除非另有规定。即便如此,使用public
修饰符是否被视为最佳实践?如果没有其他方法使代码更明显 我个人喜欢每次都列出它。当然,这只是个人喜好的问题。如果您确实想这样做,并且您使用了tslint,那么每次都有一个强制显式可见性的选项
member-access: true
在我看来,这是一个非常主观的话题,不存在完美的答案。然而,我想说,确定答案的一个重要因素是您是否同时使用其他语言,以及TypeScript和其他语言之间的默认访问器修饰符是否有差异 以C#为例。在C#中,没有显式访问修饰符的每个属性和字段都是私有的。显然,在TypeScript中,它是公开的
如果您碰巧在同一个项目中使用C#和TypeScript,或者只是并行使用,我建议您使用显式访问修饰符,只是为了清楚起见。显式声明公共访问修饰符的好处是,它表明您考虑过它,并且您决定它应该是公共的。 缺点是额外的语法会增加噪音,这使得重要的代码更难通过(开发人员每次都要添加额外的语法,这会让他们付出更多的工作) 我曾经看到过一些情况,其中应该添加私有修饰符,但没有考虑访问修饰符 老实说,如果默认情况下所有内容都是私有的,那就更好了,而且您必须添加
public
才能将其对外开放
就我个人而言,我倾向于明确地添加它们
然而,我认为对于必须公开的东西,可以使用默认值(因为我们不必考虑它是否应该是私有的,因为它必须是公开的)
示例(对于角度)如下所示:
@Input()
,@Output()
,@HostListener
,以及实现的公共方法。正如其他答案所述,这是一个偏好问题(我更喜欢精简版本)
如果使用,则必须使用显式的public
access修饰符才能从给定参数创建和初始化实例成员
class Octopus {
readonly numberOfLegs: number = 8;
constructor(public name: string, ink: boolean) { }
}
const o = new Octopus("Lui", true)
o.name // works
o.ink // error
在我看来,最好不要写它。它不需要维护,也不需要查看。此外,不添加它会使受保护的和私有的成员从公共成员中脱颖而出,因此很容易快速查看内容。