我不知道为什么,我在一个Angular应用程序中,当我按下format document时,我的类型会被删除。
# 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;
}对这可能是什么有什么建议吗?
发布于 2019-01-25 02:59:23
默认情况下,linter与Prettier一起安装,并将根据您的tslint.json配置格式化,自动修复较小的prettier-tslint错误。
Angular CLI生成的linting规则有一条规则,声明隐式类型变量不需要显式类型。具体地说,这是tslint.json中的no-inferrable-types规则。
如果你没有对变量进行内联赋值,它们的类型就不会被删除,例如:
export class AppComponent {
name: string;
constructor() {
this.name = 'Name';
}
}设置上面的格式将保持显式类型。
因为缺省的linting规则是'Angular way',所以我认为让它保持原样是没有问题的;如果一个变量立即被赋值为一个字符串,那么它的类型显然是一个字符串。
但是,如果希望更改更美观的格式化行为,只需将tslint.json中的no-inferrable-types条目更改为false即可。如果你不想改变linting规则,你也应该能够在你更漂亮的工作空间配置中禁用它,但是你的linter仍然会显示一个关于可推断类型的错误。
https://stackoverflow.com/questions/54353487
复制相似问题