Typescript "Тип не может быть назначен для выбора для атрибутов состояния по умолчанию для базового класса React - PullRequest
0 голосов
/ 27 апреля 2020

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

abstract class RxJSReactHelperClass<P, S> extends React.Component<P, S & Errors> {
    protected disposer: Subscription = new Subscription()
    protected subjectDisposer: BehaviorSubject<any>[] = []

    protected handleError = (error: Error | unknown) => {
        let errorText = error instanceof Error ? error.message : JSON.stringify(error)
        console.error(error)
        this.setState({ error: [...this.state.error, errorText] })
    }

    public abstract componentWillUnmount(): void
}

так, чтобы любой компонент требовался для реализации componentWillUnmount. Эта часть работает, но я получаю сообщение об ошибке setState:

Argument of type '{ error: string[]; }' is not assignable to parameter of type '(S & Errors) | ((prevState: Readonly<S & Errors>, props: Readonly<P>) => (S & Errors) | Pick<S & Errors, "error"> | null) | Pick<...> | null'.


Type '{ error: string[]; }' is not assignable to type 'Pick<S & Errors, "error">'.
    Types of property 'error' are incompatible.
      Type 'string[]' is not assignable to type 'S["error"] & string[]'.
        Type 'string[]' is not assignable to type 'S["error"]'.

, которое, как я знаю, имеет отношение к React.Component<P, S & Errors>. Как я могу установить список атрибутов состояния по умолчанию для класса?

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