Создать PropTypes из TypeScript - PullRequest
       11

Создать PropTypes из TypeScript

1 голос
/ 25 октября 2019

Я использую React с TypeScript. Я также использую PropTypes. TypeScript предназначен для проверки типов времени компиляции, в то время как PropTypes проверяет переданные реквизиты во время выполнения (режим разработки). Таким образом, я обнаружил, что пишу типы дважды. Оба TypeScript и PropTypes. Например, компонент ListingsList:

interface ListingsListProps {
    listings: Listing[];
    height: number;
    width: number;
    rowHeight: number;
    forwardedRef?: Ref<List>;
    className?: string;
}

const ListingsList: FunctionComponent<ListingsListProps> = props => {
...
...
};

ListingsList.propTypes = {
    listings: PropTypes.arrayOf(listingPropType.isRequired).isRequired,
    height: PropTypes.number.isRequired,
    width: PropTypes.number.isRequired,
    rowHeight: PropTypes.number.isRequired,
    forwardedRef: PropTypes.shape({ current: PropTypes.instanceOf(List).isRequired }),
    className: PropTypes.string,
};

Каждый раз, когда я допускаю ошибку (определяя свойство по-разному в PropTypes и в TypeScript), я получаю ошибку машинописного текста. Иногда я действительно не знаю, как определить PropType. Например, при передаче свойства History из 'history'. Я не хочу определять History PropType самостоятельно, потому что он имеет сложную форму. Я видел, что есть проекты, которые генерируют TypeScript из PropTypes, но мне действительно это не нравится, потому что TypeScript намного сильнее, я могу определять более подробные типы. Я ищу способ создания PropTypes из TypeScript, и я считаю, что это обязательная функция для разработчиков React.

...