一个简单的问题,但只是想得到一些建议。
我正在使用Angular构建一个简单的税务计算器应用程序,我现在所有的计算工作正常但是当它进入代码设计时我不知道我是否以正确的方式进行。所以...
当我第一次放置一些代码时,我有这个来计算退休金数额
this.superAnnuationAmount = (this.incomeAmount / 100) * this.superAnnuationPercentage
非常简单。但是现在我来清理我的代码了,如果我这样做的话,我认为它看起来会更好看...
this.superAnnuationAmount = this.getSuperannuationAmount(this.incomeAmount, this.superAnnuationPercentage);
private getSuperannuationAmount(income: number, percentage: number): number {
return (income / 100) * percentage;
}
现在我知道它几乎没有什么区别,除了它让它更具可读性。我也将采用这种方法来处理更复杂的功能。但是在我的IDE中,我有Method can be more static
的linting错误。
怎么会更静态?并且正在采用大功能并将它们放入更易读的小功能中吗?
答案 0 :(得分:3)
由于你的函数没有在对象上使用实例变量(它不使用this
),你可以使它静态
private static getSuperannuationAmount(income: number, percentage: number): number {
return (income / 100) * percentage;
}
你不必这样做 - 它只是你的短信来到你身边。
我认为更简洁的方法是使用吸气剂:
public get superAnnuationAmount(): number {
return (this.incomeAmount / 100) * this.superAnnuationPercentage;
}
现在您可以使用常规superAnnuationAmount
,它将使用实例变量进行计算。
答案 1 :(得分:1)
老实说,如果我是开发人员必须维护你的代码,我更喜欢第一个版本,因为它足够清楚,特别是因为superAnnuationAmount
变量explains数学的意图表达在右边。在第二个版本中,我看不到所有的信息,逻辑现在在两个不同的地方,并且关于可读性的奖励不能证明这种分散(并且使方法静态会使事情变得更糟,如果只有一个需要进行计算的地方)。
答案 2 :(得分:0)
嗨,它可能与this question有关。 静态方法存在于类而不是对象实例上。请提供课程结构以获取更多详细信息。