گزینههای tsconfig که واقعاً اهمیت دارند، گروهبندیشده بر اساس کار: سختگیرانهکردن بررسی تایپها، تعیین سطح زبان و ماژولها، کنترل خروجی تولیدشده، مپکردن مسیرهای import، ساختار پروژههای چندگانه، و تنظیم بررسیهای باقیمانده.
یک tsconfig به کامپایلر میگوید کدام فایلها را بشامل شود و چقدر سختگیر باشد. دو گزینه بیشترِ کار را انجام میدهند: target سطح تولید JavaScript را تعیین میکند، و strict بررسیهای ایمنی را یکجا روشن میکند. گزینههای زیر آنهایی هستند که رفتار را تغییر میدهند؛ گزینههایی که بهصورت پیشفرض روشناند علامت خوردهاند. پیکربندیتان را از یک پایه مشتق کنید، بعد فقط موارد متفاوت را override کنید.
جدول مرجع · 55 مورد
گزینههای tsconfigExplained
55 of 55 rows
سختگیری
کلید اصلی: strictNullChecks و noImplicitAny و چند مورد دیگر را همزمان فعال میکند.
خطا روی پارامترها و متغیرهایی که تایپ آنها قابل استنباط نیست (در غیر این صورت any میشدند).
null و undefined دیگر به هر تایپی قابل انتساب نیستند؛ باید صریحاً انتخابشان کنید.
پارامترهای تابع بهصورت پادمتغیر (contravariant) بررسی میشوند؛ تایپهای ناامن پارامتر callback را میگیرد.
بررسی تایپ bind و call و apply در برابر پارامترهای اعلامشدهٔ تابع.
خطا وقتی پراپرتی کلاس مقدار اولیه ندارد و در سازنده هم مقداردهی نمیشود.
پراپرتی اختیاری { p?: T } دیگر انتساب صریح undefined را نمیپذیرد.
کلیدواژهٔ override روی اعضایی که عضو کلاس پایه را میپوشانند الزامی است.
خطا روی متغیرهای محلی اعلامشدهای که هرگز خوانده نمیشوند.
خطا روی پارامترهای اعلامشدهٔ تابع که هرگز خوانده نمیشوند.
خطا روی statement های عبارتی که اثری ندارند.
دسترسی با نقطه برای کلیدهای index signature ممنوع است؛ از براکت استفاده کنید (obj["key"]).
خطا وقتی یک مسیر کد مقدار برمیگرداند ولی مسیر دیگری برنمیگرداند.
خطا وقتی یک case بدون break به case بعدی میافتد.
زبان و ماژولها
سطح تولید JavaScript (مثلاً ES2022)؛ targetهای جدیدتر تبدیل به سطح پایینتر کمتری نیاز دارند.
APIهای داخلی در دسترس (مثلاً ES2022، DOM، DOM.Iterable).
سیستم ماژولی که تولید میشود (مثلاً ESNext، CommonJS، NodeNext).
از قوانین واقعی Node پیروی میکند: هر فایل بر اساس نزدیکترین package.json یا CJS یا ESM را انتخاب میکند، و importهای نسبی به پسوند فایل نیاز دارند.