Ошибки из официального углового сценария - PullRequest
0 голосов
/ 01 июня 2018

Я скопировал следующий код из https://material.angular.io/components/chips/overview:

visible: boolean = true;
selectable: boolean = true;
removable: boolean = true;
addOnBlur: boolean = true;

// Enter, comma
separatorKeysCodes = [ENTER, COMMA];

fruits = [
  { name: 'Lemon' },
  { name: 'Lime' },
  { name: 'Apple' },
];


add(event: MatChipInputEvent): void {
  let input = event.input;
  let value = event.value;

  // Add our fruit
  if ((value || '').trim()) {
      this.fruits.push({ name: value.trim() });
  }

  // Reset the input value
  if (input) {
      input.value = '';
  }
}

remove(fruit: any): void {
  let index = this.fruits.indexOf(fruit);

  if (index >= 0) {
      this.fruits.splice(index, 1);
  }
}

Но я получаю следующие ошибки:

  • TSLint: тип boolean, тривиально выведенный из логического литерала, удалить аннотацию типа (no-inferrable-types)
  • Видимо неиспользуемое поле
  • TSLint: Идентификатор 'value' никогда не переназначается;используйте «const» вместо «let».(предпочитайте-const)

Почему я получаю эти ошибки?Я не думаю, что это вина Angulars.Значит, я что-то не так делаю?

Ответы [ 4 ]

0 голосов
/ 16 августа 2019

У вас также есть возможность отключить это предупреждение внутри tslint.json

"no-inferrable-types": [true, "ignore-params"] до "no-inferrable-types": [false, "ignore-params"]

0 голосов
/ 01 июня 2018

Это не «ошибки» из официальных документов Angular.Это предупреждения от машинного линтера.Angular CLI поставляется в комплекте с TSLint - пакетом, который проверяет ваш код и выдает вам предупреждения, чтобы вы могли поддерживать свой код в чистоте и соблюдать стандарты.

  • TSLint: тип boolean, тривиально выведенный излогический литерал, удалить аннотацию типа (no-inferrable-types)

При объявлении переменной, если вы инициализируете ее, нет необходимости указывать тип, так как машинопись может вывести его изуказанное значение.

let myVar = true; // myVar is of inferred boolean type
  • Неиспользуемое видимое поле

Ваша переменная visible объявлена, но никогда не используется.Это совет, может быть, просто удалить его из вашего кода.

  • TSLint: Идентификатор 'value' никогда не переназначается;используйте «const» вместо «let».(предпочитайте-const)

Если вы никогда не переназначаете значение переменной, используйте const вместо let.Переменная const будет содержать значение, защищая его от изменения.

Просто используйте рекомендуемые изменения:

selectable = true;
removable = true;
addOnBlur =true;

// Enter, comma
separatorKeysCodes = [ENTER, COMMA];

fruits = [
  { name: 'Lemon' },
  { name: 'Lime' },
  { name: 'Apple' },
];


add(event: MatChipInputEvent): void {
  let input = event.input;
  const value = event.value;

  // Add our fruit
  if ((value || '').trim()) {
      this.fruits.push({ name: value.trim() });
  }

  // Reset the input value
  if (input) {
      input.value = '';
  }
}

remove(fruit: any): void {
  let index = this.fruits.indexOf(fruit);

  if (index >= 0) {
      this.fruits.splice(index, 1);
  }
}
0 голосов
/ 01 июня 2018

Это потому, что TSLint включен для вашей IDE

TSLint: Введите логическое значение, тривиально выведенное из логического литерала, удалите аннотацию типа (no-inferrable-types)

В ts тип выводим - вам не нужно явно упоминать: boolean, когда вы присваиваете логическое значение.Измените, как показано ниже

visible = true;
selectable = true;
removable = true;
addOnBlur = true;

Неиспользуемое поле видно

Вы не используете visible в любом месте кода

TSLint: идентификатор 'value' никогда не переназначается;используйте «const» вместо «let».(предпочитайте-const)

когда вы не переназначаете переменную, вы определяете ее как const вместо let

const value = event.value;
0 голосов
/ 01 июня 2018

Это ошибки linting, другими словами, они не приводят к ошибкам, но они существуют, потому что код не соответствует руководству по стилю TSlint, то же самое, например, когда вы используете standard js linter и размещаете ; Линтер подчеркнет ; как ошибки.

...