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

რამე რჩევები, თუ რა შეიძლება იყოს ეს?

უპასუხე #1

ნაგულისხმევად, prettier-tslint დაინსტალირება Prettier-ისთან ერთად და ეს მოაწყობს ფორმატირებას თქვენს tslint.json კონფიგურაციის მიხედვით, ავტომატურად ამოწმებს მცირე ლინტერის შეცდომებს.

Angular CLI-ის მიერ გენერირებული ლინტინგის წესები შეიცავს წესს, რომელიც ამბობს, რომ იმპლიციტურად ტიპიზირებულ ვარიანტებს არ სჭირდებათ ექსპლიციტური ტიპიზაცია. კერძოდ, ეს არის no-inferrable-types წესი თქვენს tslint.json-ში.

თუ თქვენ არ ასიგნებდით ცვლადებს_inline, მათი ტიპები არ დაიხსნებოდა, მაგალითად:

export class AppComponent {
  name: string;

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

ზემოთ მოყვანილი ფორმატირება შეინარჩუნებს პირდაპირი ტიპიზებას.

ჩართო რომ ნაგულისხმები ლინტინგის წესები არის 'Angular გზა', მე არ მგონია პრობლემა იყოს დატოვება ისე როგორიცაა; თუ ცვლადი დაუყოვნებლივ ენიჭება როგორც სტრინგი, მისი ტიპი აშკარად სტრინგია.

თუმცა, თუ გინდოდათ შეცვლილიყავით Prettier-ის ფორმატირების ქცევა, უბრალოდ შეცვალეთ no-inferrable-types ჩანაწერი tslint.json-ში მნიშვნელობაზე false. თუ არ გსურთ ლინტინგის წესების შეცვლა, ასევე შეგიძლიათ გათიშოთ ის თქვენს Prettier სამუშაო სივრცის კონფიგურაციაში, მაგრამ თქვენი ლინტერი მაინც აჩვენებს შეცდომას ინფერირებადი ტიპისთვის.