ریاکتجیاس - جایگزینهای PropTypes در React 19


با React 19، PropTypes از React حذف شده و نادیده گرفته میشوند. در حالی که تیم React توصیه میکند به جای آن از Typescript استفاده شود، من معتقدم این جایگزین کاملی نیست.

من از TypeScript در پروژه خود استفاده می کنم، اگرچه محدودیت هایی دارد، به عنوان مثال، اگر به دلایلی نمی توان انواع را به طور کامل مشخص کرد و از any یا as استفاده می شود. همچنین، من به شدت به APIهایی وابسته هستم که تعاریف نوع موجود ندارند یا به اندازه کافی دقیق نیستند.

استفاده همزمان از Typescript و PropTypes یک روش بسیار توصیه شده بود و زمان زیادی را که ممکن بود صرف مواجهه با رفتارهای غیرمنتظره به دلیل هشدارهای از دست رفته Typescript میشد، برای من صرفهجویی کرد.

پس سوال من این است که آیا جایگزینی برای بررسی نوع در زمان اجرا (و نه فقط در زمان کامپایل) برای React 19 وجود دارد؟

پاسخ شماره ۱

من به سادگی توضیح PR که اعتبارسنجی propTypes را حذف کرد، نقل قول میکنم:

به طور کلی، پیشنهاد ما استفاده از بررسی نوع ایستا (مثلاً TypeScript) است. اگر هنوز هم میخواهید بررسی propTypes را انجام دهید، میتوانید این کار را به صورت دستی انجام دهید، همانطور که خارج از React انجام میدهید:

import checkPropTypes from 'prop-types/checkPropTypes';

function Button(props) {
  checkPropTypes(Button.propTypes, props, 'prop', Button.name)
  // ...
}

اگر بخواهید این بررسیها را به صورت ضمنی نگه دارید، این میتواند به عنوان یک پلاگین Babel خودکار شود. (ما چنین پلاگینی ارائه نخواهیم داد، اما ممکن است کسی در جامعه علاقمند به ساخت یا نگهداری آن باشد.)