IntelliSense не работает с моей собственной библиотекой компонентов React - PullRequest
0 голосов
/ 17 ноября 2018

IntelliSense не отображает реквизиты, которые принимают компоненты в моей библиотеке React.Библиотека объединена в модуль UMD с Webpack (, если это имеет значение ).

Вот как это выглядит в моей IDE, когда я пытаюсь посмотреть, какие реквизиты принимает компонент:

enter image description here

По сравнению с другими элементами / компонентами ...

enter image description here

Как сделатьЯ заставляю IntelliSense работать с моими компонентами?

1 Ответ

0 голосов
/ 13 мая 2019

Поздно на вечеринку, но, надеюсь, это кому-нибудь поможет.

У меня была та же проблема с моей библиотекой компонентов, которую я собирал с помощью накопительного пакета.

Я использовал @ babel / plugin-offer-class-properties и писал классы так:

import React, { PureComponent } from 'react'
import PropTypes from 'prop-types'

export default class Alert extends PureComponent {
    static propTypes = {
        type: PropTypes.oneOf(['success', 'info', 'warning', 'danger']),
        title: PropTypes.string,
    }

    render() {
        const { type, children } = this.props


        return (
            <div>
                <h3>{title}</h3>
                {children &&
                <div className="alert-content">
                    {children}
                </div>
                }
            </div>
        )
    }
}

В моем скомпилированном файле это использовало defineProperty, например, для определения propTypes:

_defineProperty(Alert, "propTypes", {
  type: PropTypes.oneOf(['success', 'info', 'warning', 'danger']),
  title: PropTypes.string
});

Установив параметр loose: true на babel-plugin, мне удалось превратить его в это, и intellisense работал в IntelliJ:

Alert.propTypes = {
  type: PropTypes.oneOf(['success', 'info', 'warning', 'danger']),
  title: PropTypes.string
};

Мой .babelrc

{
  "plugins": [
    ["@babel/plugin-proposal-class-properties", { "loose": true }]
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...