Как правильно использовать функцию изменения на кнопке реагирования и не иметь никаких неиспользуемых переменных - PullRequest
1 голос
/ 03 марта 2020

Мне нужна кнопка Basi c, в которой я могу передать type функции при нажатии. Тем не менее, я хотел бы сделать это без event внутри функции, так как я получаю ошибку linting - event is definied but never used.

const Test: React.FC = () => {
  const [state, setState] = useState(null);
  const handleClick = (type: string) => (event: object) => {
    switch (type) {
      case 'CASE_1':
        doSomething(state);
        break;
      default:
        return;
    }
  };

  return (
    <button onClick={handleClick('CASE_1')}>CLICK ME</button>
  )
}

1 Ответ

1 голос
/ 03 марта 2020

Чтобы исправить это в отношении встроенного линтера TypeScripts:

  1. Добавьте префикс имени неиспользуемого параметра с подчеркиванием: (_event: object) => {

Из TypeScript документы :

Объявление параметров с именами, начинающимися с _, освобождается от проверки неиспользуемых параметров.

Вы также можете отключить предупреждения о неиспользованных параметрах глобально в вашей конфигурации TypeScript с флагом noUnusedParameters.

В общем любой линтер должен быть отключен, просто пропустив аргумент целиком: () => {...
Если эта функция вызывается из TypeScript с аргументом, компилятор (и, возможно, другие линтеры) будут тогда жаловаться на посторонний аргумент на сайте вызова.
Но поскольку он вызывается только React этого не происходит.

...