В Angular было бы хорошо / правильно иметь конструктор над переменными класса? - PullRequest
0 голосов
/ 04 сентября 2018

IE: вместо этого:

export class MyComponent implements OnInit {
  users: User[];
  error_message: string;
  constructor(public authService: AuthService, public router: Router) { }

Это (выглядит чище и правильнее для меня)

export class MyComponent implements OnInit {
  constructor(public authService: AuthService, public router: Router) { }
  users: User[];
  error_message: string;

Я не смог найти никакой документации по этому вопросу в руководстве по стилю Angular: https://angular.io/guide/lifecycle-hooks

Ответы [ 4 ]

0 голосов
/ 05 сентября 2018

Цитирование официального углового руководства по стилю .

Размещайте свойства сверху, а затем методы.

Конструктор - это метод, поэтому его следует размещать после свойств класса.

0 голосов
/ 04 сентября 2018

Это нормально в том смысле, что код будет компилироваться и выполнять свою работу. Для машинописного текста linter tslint (программа, которая проверяет ваш код на стиль), в конфигурации по умолчанию переменные располагаются над конструктором. Однако некоторые команды устанавливают свои правила. Я бы предложил выбрать заказ и придерживаться его, что значительно упрощает навигацию по длинным файлам.

0 голосов
/ 04 сентября 2018

Это нормально? Конечно, все в порядке. Прилично - это спорно. Это, конечно, не принято.

Что происходит, когда вы начинаете нуждаться в использовании переменных-членов в вашем конструкторе?

В этом случае: Если вы продолжаете объявлять переменные ниже вашего конструктора, убедитесь, что он будет работать, но это, безусловно, не очень удобно для удобства чтения. В качестве альтернативы в этом случае вы можете объявить эти переменные-члены над конструктором, но тогда у вас будут несоответствия в ваших файлах. (т.е. некоторые файлы с переменными-членами, определенными до конструктора, а некоторые - после.)

Я бы рекомендовал придерживаться соглашения об определении всех ваших переменных-членов в начале класса до конструктора, но эй, это только мои два цента! :)

0 голосов
/ 04 сентября 2018

Нет ограничений для такой декларации.

Вместо руководства по стилю Angular, я бы посоветовал вам проверить Правила TSlint

Но такого ограничения тоже нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...