Prettier 删除类型
Prettier removes types
我不知道为什么,我在 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 way',我认为保持原样没有问题;如果一个变量被立即分配为一个字符串,它的类型显然是一个字符串。
但是,如果您想更改 Prettier 格式设置行为,只需将 tslint.json
中的 no-inferrable-types
条目更改为 false
。如果您不想更改 linting 规则,您也应该能够在 Prettier 工作区配置中禁用它,但您的 linter 仍会显示可推断类型的错误。
我不知道为什么,我在 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 way',我认为保持原样没有问题;如果一个变量被立即分配为一个字符串,它的类型显然是一个字符串。
但是,如果您想更改 Prettier 格式设置行为,只需将 tslint.json
中的 no-inferrable-types
条目更改为 false
。如果您不想更改 linting 规则,您也应该能够在 Prettier 工作区配置中禁用它,但您的 linter 仍会显示可推断类型的错误。