Красивее удаляет типы - PullRequest
       6

Красивее удаляет типы

0 голосов
/ 24 января 2019

Понятия не имею, почему, я нахожусь в приложении Angular и когда я нажимаю форматный документ, мои типы удаляются.

# Before:
export class AppComponent {
  title:string = 'angular-todolist';
  name:string = 'Michael';
  someInteger:number = 10;
}
# After:
export class AppComponent {
  title = 'angular-todolist';
  name = 'Michael';
  someInteger = 10;
}

Есть предложения относительно того, что это может быть?

1 Ответ

0 голосов
/ 24 января 2019

По умолчанию prettier-tslint устанавливается вместе с Prettier и форматируется в соответствии с вашей конфигурацией tslint.json, автоматически исправляя мелкие ошибки линтера.

В правилах сглаживания, генерируемых Angular CLI, есть правило, гласящее, чтопеременные с неявной типизацией не требуют явной типизации.В частности, это правило no-inferrable-types в вашем tslint.json.

Если вы не присваиваете переменные встроенными, их типы не будут удалены, например:

export class AppComponent {
  name: string;

  constructor() {
    this.name = 'Name';
  }
}

Форматирование вышеизложенного сохранит явную типизацию.

Поскольку стандартные правила линтинга - это «угловой путь», я не думаю, что есть проблема, если оставить все как есть;если переменная сразу назначается в виде строки, ее тип, очевидно, является строкой.

Однако, если вы хотите изменить поведение форматирования Претти, просто измените запись no-inferrable-types в tslint.json на false.Если вы не хотите изменять правила линтинга, вы также можете отключить его в конфигурации рабочего пространства Prettier, но ваш линтер все равно будет отображать ошибку для выводимого типа.

...