Как мне импортировать этот интерфейс из библиотеки React-Particles- JS? - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь отделить мои параметры от моего JSX в библиотеке реагирующих частиц- js. Я помещаю свои параметры в объект:

let options = {
        "particles": {
            "number": {
                "value": 50
            },
            "size": {
                "value": 3
            }
        },
        "interactivity": {
            "events": {
                "onhover": {
                    "enable": true,
                    "mode": "repulse"
                }
            }
        }
    }

Затем я пишу свой JSX:

<Particles params={options}/>

Когда я делаю это, я получаю ошибку

The types of 'interactivity.events.onhover.mode' are incompatible between these types.
    Type 'string' is not assignable to type '"repulse" | "grab" | "push" | "remove" | "bubble" | InteractivityMode[] | undefined'.  TS2322

I невозможно импортировать интерфейс InteractivityMode, так как он не экспортируется в библиотеку. Я не уверен, что делать здесь.

1 Ответ

0 голосов
/ 28 марта 2020

Если вы проверите определение типа этого

https://github.com/Wufe/react-particles-js/blob/master/index.d.ts

export type IParticlesParams = RecursivePartial<{
  ...
}>

export interface ParticlesProps {
    width?: string;
    height?: string;
    params?: IParticlesParams;
    style?: any;
    className?: string;
    canvasClassName?: string;
}

type Particles = ComponentClass<ParticlesProps>;

Поэтому импортируйте тип IParticlesParams и используйте его

import { Particles, IParticlesParams } from "react-particles-js";

let options: IParticlesParams = {
  ...
}

И если возникнут какие-либо другие ошибки типа, обработайте их внутри своего файла, как обычно, в порядке

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