在我们的项目中,我们使用AirBnB的 linting-config 。这是一条规则,规定类方法必须使用静态方法this
或声明为静态方法。从理论上讲,这条规则对我来说很有意义,但在角度背景下似乎会引起一些问题。想象一个像这样的组件(Stackblitz):
import { Component, VERSION } from '@angular/core';
@Component({
selector: 'my-app',
template: '<p>{{doSomething("hello stack overflow")}}'
})
export class AppComponent {
doSomething(string: string): string {
return string.toLocaleUpperCase();
}
}
现在,linter 会抱怨doSomething
不使用它。Wen 现在可以使函数静态来满足它 - 但我们将无法在模板中使用该函数。
一个结论是,它doSomething
不应该是 AppComponent 的一部分,而应该是另一项服务的一部分。但是我们必须再次将静态函数包装在非静态函数中。最终,包装功能并不比原始功能小多少,因此整个外包给服务的事情似乎毫无意义。特别是因为我们谈到的函数明确仅对组件模板有用。这似乎是有问题的,特别是对于trackBy
of 的跟踪功能ngForOf
- 它们本质上倾向于不使用this
关键字并且仅在模板中使用,因此它们不能是静态的。
那么是否存在一种有意义的模式来处理模板中与此规则一起使用的函数,或者它对于角度来说不是一个有用的规则?
一只萌萌小番薯
慕尼黑的夜晚无繁华
拉莫斯之舞
相关分类