Любой смысл, почему я не могу объявить мои реквизиты по умолчанию, как это? Я новичок в современном интерфейсе и пришел из js ванили, извините, если мне кажется сложным понять логи c!
class MenueButtons extends Component {
constructor(props) {
super(props);
this.props = {
/**@type {number} description*/
count: props?.count || 0,
/**@type {string} description*/
test2: props?.test2 || '',
}
}
это приложение, если нужно пропустить все реквизиты, определенные ex: <MenueButtons count='0' />
Warning: MenueButtons(...): When calling super() in `MenueButtons`, make sure to pass up the same props that your component's constructor was passed.
Единственный способ, которым я могу видеть, - поступать так после урока!
MenueButtons.defaultProps = {
count: 0,
test2: '',
};
Но для меня это выглядит странно, и i потерял мой смысл в VsCode ! Любой способ объявить мои реквизиты в конструкторе и заставить работать intellisense нормально?
Я пытаюсь объявить в конструкторе, потому что это единственный способ заставить интеллект работать так. Объявите с помощью defaultProps
, прервите предложение и декларативную проверку.
с объявлением в конструкторе
с объявлением только defaultProps
РЕДАКТИРОВАТЬ: Хорошо, после многих испытаний, это выглядит более интуитивно понятным и логичным c для меня. 100% совместимость с intellisense из IDE vsCode.
/**Class description */
class MenueButtons extends Component {
constructor(props) {
super(props);
/**@type {{aaa?: number, bbb?: string }} */
this.props
}
render() {
еще не идеально, , если у вас есть другая более чистая идея или более logi c, я открыт для любых предложений, спасибо , Возможно, я также могу создать typedef
верх документа для публикации в defaultProps
!
/**
* @typedef {Object} _defaultProps - ...descriptions
* @property {number} [_defaultProps.aaa] - ...descriptions
* @property {string} [_defaultProps.bbb] - ...descriptions
*/
/**@type {_defaultProps} */
this.props
спасибо за любую помощь