Видимо начиная с машинописного текста 2.6 эта ошибка возникает. Но я не уверен, какое критическое изменение вызывает такое поведение, похоже, что ни одно из них не соответствует .
Основная причина такова:
let readOnlyOrVoid: Readonly<void | {}> // resolves to void | Readonly<{}>
let readOnlyOfAny: Readonly<any> // in 2.5 this resolves to any, in 2.6 it does not we still have Readonly<any>
readOnlyOfAny = readOnlyOrVoid; // valid in 2.5, not so in 2.6
Возвращаясь к React
, ComponentState
определяется в 15.0.23 как:
type ComponentState = {} | void ;
В то время как state
для JSX.ElementClass
(что расширяет React.Component<any, any>
) имеет тип Readonly<any>
.
Поскольку Container.create
вернет упакованный компонент с состоянием ComponentState
, мы сталкиваемся именно с этой проблемой назначения Readonly<void | {}>
(из упакованного компонента) в Readonly<any>
(из определения JSX.ElementClass
)
Самое простое решение - обновить набор для react
до 15.0.39
, который заменяет определение ComponentState
на:
type ComponentState = {};