5minds / javascript-guidelines

Our customized eslint config inspired by airbnb
0 stars 0 forks source link

Decorators #7

Open Paulomart opened 7 years ago

Paulomart commented 7 years ago

Wir haben aktuell keinen Standart wie wir Decorators benutzen.

@5ebastianMeier und ich haben heute bereits darüber diskutiert. Grob gibt es zwei verschiedene Vorschläge:

Gleiche Zeile:

class Fuu {
  @bindable private member;
}

Neue Zeile:

class Bar {
  @bindable
  private member;
}

Außerdem können Decorators auch an Klassen erscheinen:

Gleiche Zeile:

@inject class Baz {
}

Neue Zeile:

@inject
class Fuu {
}

Leider gibt es aktuell keine tslint oder eslint Konfiguration dazu.

Das Issue betrifft TypeScript genauso wie JavaScript

Paulomart commented 7 years ago

Meiner Meinung nach gehören die Decorator in eine neue Zeile, falls mehrere Decorators an einem Feld oder einer Klasse sind, bringt das mehr Übersicht.

heikomat commented 7 years ago

@Paulomart ist ein argument. Allerdings sieht das auch nicht schön aus, wenn man z.b. 3 einfache bindables hat

Paulomart commented 7 years ago

@heikomat

Ich wäre trotzdem dafür wenn wir uns für eine Sache entscheiden das einheitlich durchzuziehen: Bei Klassen, Funktionen und Feldern.

Für mich sieht das hier einfach unschön aus:

@inject('Fuu', 'Bar', 'Baz') @wowDecorator('such awesome') export class Zap {
  ...
}

Dagegen ist dies viel leserlicher:

@inject('Fuu', 'Bar', 'Baz')
@wowDecorator('such awesome')
export class Zap {
  ...
}