更漂亮的删除类型

时间:2019-01-24 18:48:24

标签: angular typescript prettier

我不知道为什么,我在Angular应用中,当我按format文档时,我的类型被删除了。

# 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 :(得分:5)

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

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

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

export class AppComponent {
  name: string;

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

格式化上面的内容将保留显式键入。

由于默认的起毛规则是“成角度的方式”,所以我认为将其保持原样不会有问题;如果将变量立即分配为字符串,则其类型显然是字符串。

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