angular - Prettier 删除类型

标签 angular typescript prettier

我不知道为什么,我在一个 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;
}

有什么建议吗?

最佳答案

默认情况下,prettier-tslint 与 Prettier 一起安装,并将根据您的 tslint.json 配置进行格式化,自动修复较小的 linter 错误。

Angular CLI 生成的 linting 规则有一条规则声明隐式类型变量不需要显式类型。具体来说,这是 tslint.json 中的 no-inferrable-types 规则。

如果您没有内联分配变量,则它们的类型不会被删除,例如:

export class AppComponent {
  name: string;

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

格式化以上内容将保留显式输入。

由于默认的 linting 规则是“Angular 方式”,我认为保持原样没有问题;如果一个变量被立即分配为一个字符串,它的类型显然是一个字符串。

但是,如果您想更改 Prettier 格式化行为,只需将 tslint.json 中的 no-inferrable-types 条目更改为 false。如果您不想更改 linting 规则,您还应该能够在 Prettier 工作区配置中禁用它,但您的 linter 仍会显示可推断类型的错误。

关于angular - Prettier 删除类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54353487/

相关文章:

visual-studio-code - VS Code 中的 Prettier 不断突破界限

Angular 2 在不使用 ViewContainerRef 的情况下将组件动态插入到特定的 DOM 节点中

javascript - TypeScript 可以为 Closure Compiler 输出注释吗?

css - 使用 Stylelint 规则使用 Prettier 格式化 SCSS/CSS/LESS

javascript - 调用 toastr onShown 事件中的其他函数

angular - 类型错误 : Cannot read property 'get' of undefined Ionic 3/Angular 5

将 .eslintrc 重新定位到父级后,ESLint 找不到配置 "prettier/@typescript-eslint"

javascript - Angular 11 无法动态访问对象属性

angular - 如何告诉 Autoprefixer 在 Angular 8 项目中为 CSS 网格添加前缀

angular - 需要调用toHaveBeenCalledTimes