Поздно на вечеринку, но, надеюсь, это кому-нибудь поможет.
У меня была та же проблема с моей библиотекой компонентов, которую я собирал с помощью накопительного пакета.
Я использовал @ 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 }]
]
}