Можно ли избежать неявной передачи параметра дочернему компоненту? - PullRequest
1 голос
/ 26 января 2020

У меня есть компонент, передающий параметр дочерним элементам:

<Nav id="header" onDown="body" active>
  {isActive => <Header isActive={isActive} />}
</Nav>

Работает нормально, но VSCode жалуется на тип:

Параметр isActive неявно имеет тип 'any', но лучший тип может быть выведен из использования.

Можно исправить, добавив строку do c, но я ищу умный способ избежать добавив его для каждого компонента, используя <Nav /> и сделайте его чистым:

<Nav id="header" onDown="body" active>
  {
    /**
    * @param {boolean} isActive
    */
    isActive => <Header isActive={isActive} />
  }
</Nav>

Nav реализация компонента:

import React, { useEffect, useState } from 'react'
import useNav from './use-nav'

/**
 * 
 * @param {Object} props
 * @param {Function} props.children
 * @param {string} props.id
 * @param {string} [props.onUp]
 * @param {string} [props.onDown]
 * @param {string} [props.onLeft]
 * @param {string} [props.onRight]
 * @param {boolean} [props.active]
 * @returns {React.ReactElement} Nav
 */
const Nav = ({ children, ...props}) => children(useNav(props))

export default Nav

Полный код здесь https://github.com/iepsen/react-nav/tree/v1.0.0

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...