TS1056: لوازم جانبی تنها زمانی در دسترس هستند که ECMAScript 5 و بالاتر را هدف قرار دهید

TypeScript یک زبان برنامه نویسی قدرتمند است که بر روی جاوا اسکریپت ساخته شده است. اغلب به عنوان یک “ابر مجموعه” جاوا اسکریپت توصیف می شود، به این معنی که جاوا اسکریپت را با افزودن انواع استاتیک و سایر ویژگی های پیشرفته گسترش می دهد. این به شناسایی خطاها در حین توسعه کمک می کند و کد را قوی تر و درک آسان تر می کند.
در برنامه نویسی، الف نوع یک طبقه بندی است که مشخص می کند یک متغیر چه نوع مقداری را می تواند نگه دارد (به عنوان مثال، اعداد، رشته ها، یا ساختارهای پیچیده تر). TypeScript به توسعه دهندگان اجازه می دهد تا انواع را به طور صریح تعریف کنند و به ابزارسازی بهتر و کاهش خطاهای زمان اجرا کمک کند.
آشنایی با TypeScript و Accessors
یکی از ویژگی های کلیدی در TypeScript قابلیت استفاده است لوازم جانبی، که روش های خاصی نامیده می شوند get
و set
، برای تعریف ویژگی های یک کلاس استفاده می شود. این روش ها به شما این امکان را می دهند که نحوه دسترسی و اصلاح یک ویژگی را کنترل کنید. با این حال، استفاده از ابزارهای دستی مستلزم هدف قرار دادن نسخه خاصی از ECMAScript است، و در اینجاست که خطای TS1056 ظاهر می شود.
TS1056 چیست؟
پیام خطا “TS1056: Accessors فقط زمانی در دسترس هستند که ECMAScript 5 و بالاتر را هدف قرار دهید” زمانی رخ می دهد که شما سعی می کنید از ابزارهای دسترسی ویژگی کلاس در TypeScript استفاده کنید اما هدف را روی نسخه سازگار ECMAScript (ES5 یا بالاتر) تنظیم نکرده اید. بهطور پیشفرض، اگر TypeScript شما برای هدف قرار دادن نسخه قدیمی جاوا اسکریپت تنظیم شده باشد، نمیتوانید از این ویژگیهای مدرن استفاده کنید.
نمونه ای از خطا
در اینجا یک مثال از کدی است که باعث ایجاد این خطا می شود:
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
// Getter for the name property
get name() {
return this._name;
}
// Setter for the name property
set name(value: string) {
this._name = value;
}
}
const person = new Person("Alice");
console.log(person.name); // Accessor usage
اگر پیکربندی TypeScript شما ECMAScript 3 یا پایینتر را هدف قرار میدهد، این کد با خطای TS1056 خراب میشود.
چگونه TS1056 را تعمیر کنیم
برای رفع خطای TS1056، باید پیکربندی TypeScript خود را برای هدف قرار دادن ECMAScript 5 یا نسخه جدیدتر به روز کنید. شما می توانید این کار را با اصلاح کردن انجام دهید tsconfig.json
فایل در پروژه شما:
{
"compilerOptions": {
"target": "es5", // Change this to es5 or later
"module": "commonjs" // or any other module system you are using
}
}
با تنظیم target
به es5
یا بالاتر، استفاده از Accessor ها را در کلاس های TypeScript خود فعال کرده و از خطای TS1056 جلوگیری می کنید.
نکات مهمی که باید بدانید
- لوازم جانبی به شما این امکان را می دهد که خصوصیات را به طور موثر محصور کنید و فقط از ECMAScript 5 به بعد در دسترس هستند.
- اگر با TS1056 مواجه شدید، همیشه پیکربندی TypeScript خود را بررسی کنید.
- ویژگی ها و انواع جاوا اسکریپت مدرن در TypeScript به تنظیم هدف مناسب ECMAScript نیاز دارد.
سوالات متداول
س: چه اتفاقی می افتد اگر من همچنان سعی کنم از ابزارهای دستی استفاده کنم در حالی که نسخه قدیمی ECMAScript را هدف قرار می دهم؟
پاسخ: خطای TS1056 را دریافت می کنید و کد شما با موفقیت کامپایل نمی شود.
س: آیا می توانم از TypeScript با مرورگرهای قدیمی استفاده کنم؟
پاسخ: بله، میتوانید نسخههای قدیمیتر جاوا اسکریپت را هدف قرار دهید، اما دسترسی به ویژگیهای مدرن مانند دسترسیها را از دست خواهید داد. ممکن است بخواهید برای سازگاری بیشتر به ES5 یا بالاتر کامپایل کنید.
در نتیجه، درک TypeScript، انواع آن و تنظیمات پیکربندی برای توسعه موثر بسیار مهم است. خطای TS1056: دسترسیها فقط زمانی در دسترس هستند که ECMAScript 5 و بالاتر را هدف قرار میدهند، به عنوان یادآوری برای تنظیم اهداف TypeScript بر اساس آن برای استفاده مؤثر از ویژگیهای جاوا اسکریپت مدرن عمل میکند. با پیروی از این دستورالعمل ها و تنظیمات، می توانید خطای TS1056 را برطرف کنید و کد TypeScript بهتر، تمیزتر و مدرن تری بنویسید.