объект стиля для реакции-перехода вызывает ошибку «отсутствие подписи индекса» - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь использовать Transition

(75,45): error TS7017: Element implicitly has an 'any' type because type '{ entering: { opacity: number; }; entered: { opacity: number; }; exiting: { opacity: number; }; exited: { opacity: number; }; }' has no index signature.

Вот соответствующий код:

import Transition from 'react-transition-group/Transition';

...

class AnimatedElement extends React.PureComponent {

  render = () => {
    const top = 50;
    const left = 35;
    const transitionStyles = {
      entering: { opacity: 1 },
      entered: { opacity: 1 },
      exiting: { opacity: 0.5 },
      exited: { opacity: 0 },
    };
    const duration = 500;
    const defaultStyle = {
      top,
      left,
      transform: 'scale(3)',
      transition: `opacity ${duration}ms ease-in-out`,
    };
    return (
        <Transition timeout={500} in={true}>
          {(state) => (
          <div style={{ ...defaultStyle, ...transitionStyles[state] }}>
            {this.props.image}
          </div>
          )}
        </Transition>
    );
  };
}

<div style={{ ...defaultStyle, ...transitionStyles[state] }}> - строка 75, помеченная сообщением об ошибке.

Я не понимаю, почему это вызывает ошибку, особенно я использовал подобный код в других модулях машинописи.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Эта строка

const transitionStyles = {

должна быть изменена на

const transitionStyles: React.CSSProperties = {
0 голосов
/ 23 января 2019

Возможно, вам понадобится сделать одну из двух вещей.

Я полагаю, вам нужно настроить tsconfig с помощью "noImplicitAny": false

Если это не решит проблему, возможно, это будет машинописьпроверяет в самой библиотеке для типов.Вам нужно будет указать, что это не так:

{
    "compilerOptions": {
        "skipLibCheck": true,
        ...
    },
    ...
}

Через: Разрешить неявное любое только для файлов определений

...