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 სამუშაო სივრცის კონფიგურაციაში, მაგრამ თქვენი ლინტერი მაინც აჩვენებს შეცდომას ინფერირებადი ტიპისთვის.
