ts autofix
1.0.0
إصلاح أخطاء TS تلقائيًا عند توفر إصلاحات التعليمات البرمجية.
بالنسبة لمعظم حالات الاستخدام، يجب أن تكون قادرًا على استخدام ts-autofix
مباشرة من خلال npx
.
npx ts-autofix list
من جذر مشروع TS الخاص بك سوف تسرد الإصلاحات المتاحة.npx ts-autofix
تشغيل جميع الإصلاحات المتاحة. إذا لم يكن tsconfig الخاص بك موجودًا في ./tsconfig.json
، فيجب عليك إضافة arg --project <pathToTsConfig>
إلى كلا الأمرين.
يمكنك أيضًا تصفية الإصلاحات التي تم تطبيقها باستخدام وسيطات --fixes
أو --errors
.
دعوى | وصف |
---|---|
--مشروع | المسار إلى ملف tsconfig الخاص بك. على سبيل المثال npx ts-autofix [list] --project foo/tsconfig.json |
-و --إصلاحات | اسم واحد أو أكثر من إصلاحات TS المطلوب تطبيقها. استخدم npx ts-autofix list للعثور على الإصلاحات المتاحة.على سبيل المثال npx ts-autofix --fixes unusedIdentifier inferFromUsage |
-ه --أخطاء | رموز خطأ TypeScript للبحث عن إصلاحات لها. على سبيل المثال npx ts-autofix --errors TS6133 7006 |
--tsCliArgs | وسيطات CLI الإضافية لـ tsc لتجاوز خيارات المترجم. على سبيل المثال، إذا كنت تحاول زيادة صرامة مشروعك، فيمكنك تمرير علامة المترجم الإضافية التي تحاول فرضها. على سبيل المثال npx ts-autofix [list] --tsCliArgs "--noImplicitAny" |
من الممكن أيضًا استخدام ts-autofix
كمكتبة، مما يمنحك مزيدًا من التحكم في كيفية تشغيله وتطبيق الإصلاحات.
على سبيل المثال
import { tsAutoFix } from `ts-autofix` ;
tsAutoFix ( {
tsConfigPath : "foo/tsconfig.json" ,
diagnosticsFilter : ( diag ) => diag . code === 6133 ,
} ) ;
الإدخال إلى tsAutoFix
هو كائن تكوين من النوع TsAutoFixOptions
.
type TsAutoFixOptions = {
tsconfigPath : string ;
compilerOptionsOverrides ?: ts . CompilerOptions ;
diagnosticsFilter ?: ( diagnostic : ts . Diagnostic ) => boolean ;
codeFixFilter ?: ( codeFixAction : ts . CodeFixAction ) => boolean ;
preprocessCodeChanges ?: ( changes : ts . TextChange [ ] , sourceFile : ts . SourceFile , diagnostic : ts . Diagnostic ) => ts . TextChange [ ] ;
} ;
خيار | وصف |
---|---|
tsconfigPath | (مطلوب) المسار إلى tsconfig.json الخاص بمشروعك. |
com.compilerOptionsOverrides | تجاوزات اختيارية لخيارات المترجم في tsconfig. |
DiagnosticFilter | رد اتصال اختياري لتصفية تشخيصات/أخطاء TypeScript التي يجب محاولة العثور على إصلاحات لها. إذا لم يتم تحديدها، يتم استخدام جميع التشخيصات. العودة true لتشمل هذا التشخيص. |
codeFixFilter | رد اتصال اختياري لتصفية الإصلاحات التي سيتم تطبيقها. إذا لم يتم تعريفها، يتم تطبيق كافة الإصلاحات. قم بإرجاع true لتضمين هذا الإصلاح. |
preprocessCodeChanges | رد اتصال اختياري لتعديل الإصلاحات قبل تطبيقها. يمكن أن يؤدي هذا إلى إرجاع changes المعدلة أو تخطي التغييرات الفردية، ولكن لا يمكن تعديل sourceFile أو diagnostic مباشرة. |
على سبيل المثال، يمكنك استخدام preprocessCodeChanges
لتعديل البدائل المقترحة بحيث يتم الاحتفاظ بتعليقات السطر عند إزالة متغير.
import { tsAutoFix } from "ts-autofix" ;
import type * as ts from "typescript"
const preprocessCodeChanges = (
changes : ts . TextChange [ ] ,
sourceFile : ts . SourceFile ,
diagnostic : ts . Diagnostic
) : ts . TextChange [ ] => {
for ( const change of changes ) {
// If the change is purely a deletion
if ( ! change . newText ) {
let { start , length } = change . span ;
const removedText = sourceFile . text . substring ( start , start + length ) ;
// Skip leading line comments when removing code.
const match = removedText . match ( / ^(s*//.*r?n)+ / ) ;
if ( match ) {
change . span . start += match [ 0 ] . length ;
change . span . length -= match [ 0 ] . length ;
}
}
}
return changes ;
} ;
tsAutoFix ( {
tsConfigPath : "foo/tsconfig.json" ,
preprocessCodeChanges
} ) ;