Angular 隶书错误

Angular 隶书错误,angular,angular-material,phpstorm,Angular,Angular Material,Phpstorm,我已从中复制了以下代码: 但我发现以下错误: TSLint:Type boolean从boolean文本推断,删除类型注释(无可推断类型) 未使用的字段可见 TSLint:标识符“值”从未重新分配;使用“const”而不是“let”。(更喜欢常数) 为什么我会犯这些错误?我不认为这是安格拉斯的错。所以我一定是做错了什么 这些都是linting错误,换句话说,它们不会产生bug,但它们的存在是因为代码不符合TSlint样式指南,例如当您使用标准jslinter并放置时也是如此过梁将在下划线作为

我已从中复制了以下代码:

但我发现以下错误:

  • TSLint:Type boolean从boolean文本推断,删除类型注释(无可推断类型)
  • 未使用的字段可见
  • TSLint:标识符“值”从未重新分配;使用“const”而不是“let”。(更喜欢常数)

为什么我会犯这些错误?我不认为这是安格拉斯的错。所以我一定是做错了什么

这些都是linting错误,换句话说,它们不会产生bug,但它们的存在是因为代码不符合TSlint样式指南,例如当您使用
标准js
linter并放置
时也是如此过梁将在
下划线作为错误。

这些都是linting错误,换句话说,它们不会产生bug,但它们的存在是因为代码不符合TSlint样式指南,例如,当您使用
标准js
linter并放置
时,它们是相同的过梁将在
下划线作为错误。

这些不是官方文件中的“错误”。它们是来自typescript linter的警告。Angular CLI与TSLint捆绑在一起,TSLint是一个在代码之后进行检查并向您发出警告的软件包,因此您可以保持代码干净并遵守标准

  • TSLint:Type boolean从boolean文本推断,删除类型注释(无可推断类型)
声明变量时,如果初始化它,则无需指定类型,因为typescript可以从指定的值推断它

let myVar = true; // myVar is of inferred boolean type
  • 未使用的字段可见
您的变量已声明但从未使用过。这是一个提示,可能只是从代码中删除它

  • TSLint:标识符“值”从未重新分配;使用“const”而不是“let”。(更喜欢常数)
如果从未为变量重新赋值,请使用const而不是let。常量变量将保存一个值,同时保护它不被更改

只需使用建议的修改:

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);
  }
}
这些不是官方文件中的“错误”。它们是来自typescript linter的警告。Angular CLI与TSLint捆绑在一起,TSLint是一个在代码之后进行检查并向您发出警告的软件包,因此您可以保持代码干净并遵守标准

  • TSLint:Type boolean从boolean文本推断,删除类型注释(无可推断类型)
声明变量时,如果初始化它,则无需指定类型,因为typescript可以从指定的值推断它

let myVar = true; // myVar is of inferred boolean type
  • 未使用的字段可见
您的变量已声明但从未使用过。这是一个提示,可能只是从代码中删除它

  • TSLint:标识符“值”从未重新分配;使用“const”而不是“let”。(更喜欢常数)
如果从未为变量重新赋值,请使用const而不是let。常量变量将保存一个值,同时保护它不被更改

只需使用建议的修改:

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);
  }
}

这是因为您的IDE启用了TSLint

TSLint:Type boolean从boolean文本推断,删除类型注释(无可推断类型)

在ts中,类型是可推断的-当您指定布尔值时,不需要显式地提到:boolean。更改如下

visible = true;
selectable = true;
removable = true;
addOnBlur = true;
未使用的字段可见

在代码中的任何地方都没有使用visible

TSLint:从未重新分配标识符“值”;使用“const”而不是“let”。(首选常量)

如果不重新分配变量,则将其定义为常量,而不是let

const value = event.value;

这是因为您的IDE启用了TSLint

TSLint:Type boolean从boolean文本推断,删除类型注释(无可推断类型)

在ts中,类型是可推断的-当您指定布尔值时,不需要显式地提到:boolean。更改如下

visible = true;
selectable = true;
removable = true;
addOnBlur = true;
未使用的字段可见

在代码中的任何地方都没有使用visible

TSLint:从未重新分配标识符“值”;使用“const”而不是“let”。(首选常量)

如果不重新分配变量,则将其定义为常量,而不是let

const value = event.value;

您还可以选择在tslint.json中禁用此警告


“无可推断类型”:[true,“ignore params”]
“无可推断类型”:[false,“ignore params”]
您还可以在tslint.json内禁用此警告


“无可推断类型”:[true,“ignore params”]
“无可推断类型”:[false,“ignore params”]

如果Angular CLI与TSLint捆绑在一起,那么我不明白他们为什么不在没有警告的情况下清理代码。但这对我有帮助,谢谢!如果Angular CLI与TSLint捆绑在一起,那么我不明白他们为什么不在没有警告的情况下清理代码。但这对我有帮助,谢谢!